<!DOCTYPE html><html><head>
      <title>08</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      <style>
      /*!
* reveal.js 4.0.2
* https://revealjs.com
* MIT licensed
*
* Copyright (C) 2020 Hakim El Hattab, https://hakim.se
*/
.reveal .r-stretch,.reveal .stretch{max-width:none;max-height:none}.reveal pre.r-stretch code,.reveal pre.stretch code{height:100%;max-height:100%;box-sizing:border-box}.reveal .r-fit-text{display:inline-block;white-space:nowrap}.reveal .r-stack{display:grid}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal .r-hstack,.reveal .r-vstack{display:flex}.reveal .r-hstack img,.reveal .r-hstack video,.reveal .r-vstack img,.reveal .r-vstack video{min-width:0;min-height:0;-o-object-fit:contain;object-fit:contain}.reveal .r-vstack{flex-direction:column;align-items:center;justify-content:center}.reveal .r-hstack{flex-direction:row;align-items:center;justify-content:center}.reveal .items-stretch{align-items:stretch}.reveal .items-start{align-items:flex-start}.reveal .items-center{align-items:center}.reveal .items-end{align-items:flex-end}.reveal .justify-between{justify-content:space-between}.reveal .justify-around{justify-content:space-around}.reveal .justify-start{justify-content:flex-start}.reveal .justify-center{justify-content:center}.reveal .justify-end{justify-content:flex-end}html.reveal-full-page{width:100%;height:100%;height:100vh;height:calc(var(--vh,1vh) * 100);overflow:hidden}.reveal-viewport{height:100%;overflow:hidden;position:relative;line-height:1;margin:0;background-color:#fff;color:#000}.reveal .slides section .fragment{opacity:0;visibility:hidden;transition:all .2s ease;will-change:opacity}.reveal .slides section .fragment.visible{opacity:1;visibility:inherit}.reveal .slides section .fragment.disabled{transition:none}.reveal .slides section .fragment.grow{opacity:1;visibility:inherit}.reveal .slides section .fragment.grow.visible{transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1;visibility:inherit}.reveal .slides section .fragment.shrink.visible{transform:scale(.7)}.reveal .slides section .fragment.zoom-in{transform:scale(.1)}.reveal .slides section .fragment.zoom-in.visible{transform:none}.reveal .slides section .fragment.fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .slides section .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.strike{opacity:1;visibility:inherit}.reveal .slides section .fragment.strike.visible{text-decoration:line-through}.reveal .slides section .fragment.fade-up{transform:translate(0,40px)}.reveal .slides section .fragment.fade-up.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-down{transform:translate(0,-40px)}.reveal .slides section .fragment.fade-down.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-right{transform:translate(-40px,0)}.reveal .slides section .fragment.fade-right.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-left{transform:translate(40px,0)}.reveal .slides section .fragment.fade-left.visible{transform:translate(0,0)}.reveal .slides section .fragment.current-visible,.reveal .slides section .fragment.fade-in-then-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.current-visible.current-fragment,.reveal .slides section .fragment.fade-in-then-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-blue,.reveal .slides section .fragment.highlight-current-blue,.reveal .slides section .fragment.highlight-current-green,.reveal .slides section .fragment.highlight-current-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-red{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}@keyframes bounce-right{0%,10%,25%,40%,50%{transform:translateX(0)}20%{transform:translateX(10px)}30%{transform:translateX(-5px)}}@keyframes bounce-left{0%,10%,25%,40%,50%{transform:translateX(0)}20%{transform:translateX(-10px)}30%{transform:translateX(5px)}}@keyframes bounce-down{0%,10%,25%,40%,50%{transform:translateY(0)}20%{transform:translateY(10px)}30%{transform:translateY(-5px)}}.reveal .controls{display:none;position:absolute;top:auto;bottom:12px;right:12px;left:auto;z-index:11;color:#000;pointer-events:none;font-size:10px}.reveal .controls button{position:absolute;padding:0;background-color:transparent;border:0;outline:0;cursor:pointer;color:currentColor;transform:scale(.9999);transition:color .2s ease,opacity .2s ease,transform .2s ease;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}.reveal .controls .controls-arrow:after,.reveal .controls .controls-arrow:before{content:'';position:absolute;top:0;left:0;width:2.6em;height:.5em;border-radius:.25em;background-color:currentColor;transition:all .15s ease,background-color .8s ease;transform-origin:.2em 50%;will-change:transform}.reveal .controls .controls-arrow{position:relative;width:3.6em;height:3.6em}.reveal .controls .controls-arrow:before{transform:translateX(.5em) translateY(1.55em) rotate(45deg)}.reveal .controls .controls-arrow:after{transform:translateX(.5em) translateY(1.55em) rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{transform:translateX(.5em) translateY(1.55em) rotate(40deg)}.reveal .controls .controls-arrow:hover:after{transform:translateX(.5em) translateY(1.55em) rotate(-40deg)}.reveal .controls .controls-arrow:active:before{transform:translateX(.5em) translateY(1.55em) rotate(36deg)}.reveal .controls .controls-arrow:active:after{transform:translateX(.5em) translateY(1.55em) rotate(-36deg)}.reveal .controls .navigate-left{right:6.4em;bottom:3.2em;transform:translateX(-10px)}.reveal .controls .navigate-left.highlight{animation:bounce-left 2s 50 both ease-out}.reveal .controls .navigate-right{right:0;bottom:3.2em;transform:translateX(10px)}.reveal .controls .navigate-right .controls-arrow{transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{animation:bounce-right 2s 50 both ease-out}.reveal .controls .navigate-up{right:3.2em;bottom:6.4em;transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{transform:rotate(90deg)}.reveal .controls .navigate-down{right:3.2em;bottom:-1.4em;padding-bottom:1.4em;transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{animation:bounce-down 2s 50 both ease-out}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled.fragmented:hover,.reveal .controls .enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled{opacity:.3}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled{opacity:0;visibility:hidden}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled{opacity:.3}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover{opacity:1}.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled{opacity:0;visibility:hidden}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up{display:none}.reveal:not(.has-vertical-slides) .controls .navigate-left,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left{bottom:1.4em;right:5.5em}.reveal:not(.has-vertical-slides) .controls .navigate-right,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{right:1.4em;bottom:5em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{right:1.4em;bottom:.5em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:active:before,.reveal.no-hover .controls .controls-arrow:hover:before{transform:translateX(.5em) translateY(1.55em) rotate(45deg)}.reveal.no-hover .controls .controls-arrow:active:after,.reveal.no-hover .controls .controls-arrow:hover:after{transform:translateX(.5em) translateY(1.55em) rotate(-45deg)}@media screen and (min-width:500px){.reveal .controls[data-controls-layout=edges]{top:0;right:0;bottom:0;left:0}.reveal .controls[data-controls-layout=edges] .navigate-down,.reveal .controls[data-controls-layout=edges] .navigate-left,.reveal .controls[data-controls-layout=edges] .navigate-right,.reveal .controls[data-controls-layout=edges] .navigate-up{bottom:auto;right:auto}.reveal .controls[data-controls-layout=edges] .navigate-left{top:50%;left:.8em;margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-right{top:50%;right:.8em;margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-up{top:.8em;left:50%;margin-left:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:-.3em;left:50%;margin-left:-1.8em}}.reveal .progress{position:absolute;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10;background-color:rgba(0,0,0,.2);color:#fff}.reveal .progress:after{content:'';display:block;position:absolute;height:10px;width:100%;top:-10px}.reveal .progress span{display:block;height:100%;width:100%;background-color:currentColor;transition:transform .8s cubic-bezier(.26,.86,.44,.985);transform-origin:0 0;transform:scaleX(0)}.reveal .slide-number{position:absolute;display:block;right:8px;bottom:8px;z-index:31;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;color:#fff;background-color:rgba(0,0,0,.4);padding:5px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pinch-zoom}.reveal.embedded{touch-action:pan-y}.reveal .slides{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;overflow:visible;z-index:1;text-align:center;perspective:600px;perspective-origin:50% 40%}.reveal .slides>section{perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;pointer-events:auto;z-index:10;transform-style:flat;transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none;height:100%}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section>section[data-background-interactive],.reveal .slides>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section:not(.present),.reveal .slides>section>section:not(.present){pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.future,.reveal .slides>section.past,.reveal .slides>section>section.future,.reveal .slides>section>section.past{opacity:0}.reveal.slide section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{transform:translate(-150%,0)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{transform:translate(150%,0)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{transform:translate(0,150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{transform:scale(.2)}.reveal.cube .slides{perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0 0}.reveal.cube .slides>section.past{transform-origin:100% 0;transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{transform-origin:0 0;transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{transform-origin:0 100%;transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{transform-origin:0 0;transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{perspective-origin:0 50%;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0 0}.reveal.page .slides>section.past{transform-origin:0 0;transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{transform-origin:100% 0;transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{transform-origin:0 0;transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{transform-origin:0 100%;transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:0 0;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.reveal .no-transition,.reveal .no-transition *,.reveal .slides.disable-slide-transitions section{transition:none!important}.reveal .slides.disable-slide-transitions section{transform:none!important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:rgba(0,0,0,0);transition:all .8s cubic-bezier(.26,.86,.44,.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;-o-object-fit:cover;object-fit:cover}.reveal .slide-background[data-background-size=contain] video{-o-object-fit:contain;object-fit:contain}.reveal>.backgrounds .slide-background[data-background-transition=none],.reveal[data-background-transition=none]>.backgrounds .slide-background{transition:none}.reveal>.backgrounds .slide-background[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background{opacity:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal>.backgrounds .slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.past{transform:translate(-100%,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.future{transform:translate(100%,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past{transform:translate(0,-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future{transform:translate(0,100%)}.reveal>.backgrounds .slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.past{opacity:0;transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.future{opacity:0;transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past{opacity:0;transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future{opacity:0;transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.past{opacity:0;transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.future{opacity:0;transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past{opacity:0;transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future{opacity:0;transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background{transition-timing-function:ease}.reveal>.backgrounds .slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past{opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past{opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future{opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal [data-auto-animate-target^=unmatched]{will-change:opacity}.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched]{opacity:0}.reveal.overview{perspective-origin:50% 50%;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{height:100%;top:0!important;opacity:1!important;overflow:hidden;visibility:visible!important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section.present,.reveal.overview .slides section:hover{outline:10px solid rgba(150,150,150,.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0 0;outline:0;overflow:visible}.reveal.overview .backgrounds{perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl code,.reveal.rtl pre{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{transform-origin:100% 0}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}.reveal>.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);transition:all .3s ease}.reveal>.overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;transition:all .3s ease}.reveal>.overlay header{position:absolute;left:0;top:0;width:100%;padding:5px;z-index:2;box-sizing:border-box}.reveal>.overlay header a{display:inline-block;width:40px;height:40px;line-height:36px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal>.overlay header a:hover{opacity:1}.reveal>.overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal>.overlay header a.close .icon{background-image:url()}.reveal>.overlay header a.external .icon{background-image:url()}.reveal>.overlay .viewport{position:absolute;display:flex;top:50px;right:0;bottom:0;left:0}.reveal>.overlay.overlay-preview .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.reveal>.overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal>.overlay.overlay-preview.loaded .viewport-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.reveal>.overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal>.overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.overlay.overlay-help .viewport{overflow:auto;color:#fff}.reveal>.overlay.overlay-help .viewport .viewport-inner{width:600px;margin:auto;padding:20px 20px 80px 20px;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal>.overlay.overlay-help .viewport .viewport-inner table{border:1px solid #fff;border-collapse:collapse;font-size:16px}.reveal>.overlay.overlay-help .viewport .viewport-inner table td,.reveal>.overlay.overlay-help .viewport .viewport-inner table th{width:200px;padding:14px;border:1px solid #fff;vertical-align:middle}.reveal>.overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all .4s ease;-webkit-tap-highlight-color:transparent}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs{min-height:100%}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{padding:0;border:0}.reveal .hljs-ln-numbers{opacity:.6;padding-right:.75em;text-align:right;vertical-align:top}.reveal .hljs.has-highlights tr:not(.highlight-line){opacity:.4}.reveal .hljs:not(:first-child).fragment{position:absolute;top:0;left:0;width:100%;box-sizing:border-box}.reveal pre[data-auto-animate-target]{overflow:hidden}.reveal pre[data-auto-animate-target] code{height:100%}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;perspective:400px;perspective-origin:50% 50%}.reveal .roll:hover{background:0 0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all .4s ease;transform-origin:50% 0;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);transform:translate3d(0,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 0;transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:33.33333%;height:100%;top:0;left:100%;padding:14px 18px 14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:0}.reveal .speaker-notes:before{content:'Speaker notes';display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width:1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width:1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:42.85714%;height:30vh;border:0}}@media screen and (max-width:600px){.reveal.show-notes{max-height:60%;max-height:60vh}.reveal.show-notes .speaker-notes{top:100%;height:66.66667%;height:40vh}.reveal .speaker-notes{font-size:14px}}.zoomed .reveal *,.zoomed .reveal :after,.zoomed .reveal :before{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .controls,.zoomed .reveal .progress{opacity:0}.zoomed .reveal .roll span{background:0 0}.zoomed .reveal .roll span:after{visibility:hidden}html.print-pdf *{-webkit-print-color-adjust:exact}html.print-pdf{width:100%;height:100%;overflow:visible}html.print-pdf body{margin:0 auto!important;border:0;padding:0;float:none!important;overflow:visible}html.print-pdf .nestedarrow,html.print-pdf .reveal .controls,html.print-pdf .reveal .playback,html.print-pdf .reveal .progress,html.print-pdf .reveal.overview,html.print-pdf .state-background{display:none!important}html.print-pdf .reveal pre code{overflow:hidden!important;font-family:Courier,'Courier New',monospace!important}html.print-pdf .reveal{width:auto!important;height:auto!important;overflow:hidden!important}html.print-pdf .reveal .slides{position:static;width:100%!important;height:auto!important;zoom:1!important;pointer-events:initial;left:auto;top:auto;margin:0!important;padding:0!important;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}html.print-pdf .reveal .slides .pdf-page{position:relative;overflow:hidden;z-index:1;page-break-after:always}html.print-pdf .reveal .slides section{visibility:visible!important;display:block!important;position:absolute!important;margin:0!important;padding:0!important;box-sizing:border-box!important;min-height:1px;opacity:1!important;transform-style:flat!important;transform:none!important}html.print-pdf .reveal section.stack{position:relative!important;margin:0!important;padding:0!important;page-break-after:avoid!important;height:auto!important;min-height:auto!important}html.print-pdf .reveal img{box-shadow:none}html.print-pdf .reveal .backgrounds{display:none}html.print-pdf .reveal .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important}html.print-pdf .reveal.show-notes{max-width:none;max-height:none}html.print-pdf .reveal .speaker-notes-pdf{display:block;width:100%;height:auto;max-height:none;top:auto;right:auto;bottom:auto;left:auto;z-index:100}html.print-pdf .reveal .speaker-notes-pdf[data-layout=separate-page]{position:relative;color:inherit;background-color:transparent;padding:20px;page-break-after:always;border:0}html.print-pdf .reveal .slide-number-pdf{display:block;position:absolute;font-size:14px}html.print-pdf .aria-status{display:none}@media print{html:not(.print-pdf){background:#fff;width:auto;height:auto;overflow:visible}html:not(.print-pdf) body{background:#fff;font-size:20pt;width:auto;height:auto;border:0;margin:0 5%;padding:0;overflow:visible;float:none!important}html:not(.print-pdf) .controls,html:not(.print-pdf) .fork-reveal,html:not(.print-pdf) .nestedarrow,html:not(.print-pdf) .reveal .backgrounds,html:not(.print-pdf) .reveal .progress,html:not(.print-pdf) .reveal .slide-number,html:not(.print-pdf) .share-reveal,html:not(.print-pdf) .state-background{display:none!important}html:not(.print-pdf) body,html:not(.print-pdf) li,html:not(.print-pdf) p,html:not(.print-pdf) td{font-size:20pt!important;color:#000}html:not(.print-pdf) h1,html:not(.print-pdf) h2,html:not(.print-pdf) h3,html:not(.print-pdf) h4,html:not(.print-pdf) h5,html:not(.print-pdf) h6{color:#000!important;height:auto;line-height:normal;text-align:left;letter-spacing:normal}html:not(.print-pdf) h1{font-size:28pt!important}html:not(.print-pdf) h2{font-size:24pt!important}html:not(.print-pdf) h3{font-size:22pt!important}html:not(.print-pdf) h4{font-size:22pt!important;font-variant:small-caps}html:not(.print-pdf) h5{font-size:21pt!important}html:not(.print-pdf) h6{font-size:20pt!important;font-style:italic}html:not(.print-pdf) a:link,html:not(.print-pdf) a:visited{color:#000!important;font-weight:700;text-decoration:underline}html:not(.print-pdf) div,html:not(.print-pdf) ol,html:not(.print-pdf) p,html:not(.print-pdf) ul{visibility:visible;position:static;width:auto;height:auto;display:block;overflow:visible;margin:0;text-align:left!important}html:not(.print-pdf) .reveal pre,html:not(.print-pdf) .reveal table{margin-left:0;margin-right:0}html:not(.print-pdf) .reveal pre code{padding:20px}html:not(.print-pdf) .reveal blockquote{margin:20px 0}html:not(.print-pdf) .reveal .slides{position:static!important;width:auto!important;height:auto!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:0!important;zoom:1!important;transform:none!important;overflow:visible!important;display:block!important;text-align:left!important;perspective:none;perspective-origin:50% 50%}html:not(.print-pdf) .reveal .slides section{visibility:visible!important;position:static!important;width:auto!important;height:auto!important;display:block!important;overflow:visible!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:60px 20px!important;z-index:auto!important;opacity:1!important;page-break-after:always!important;transform-style:flat!important;transform:none!important;transition:none!important}html:not(.print-pdf) .reveal .slides section.stack{padding:0!important}html:not(.print-pdf) .reveal section:last-of-type{page-break-after:avoid!important}html:not(.print-pdf) .reveal section .fragment{opacity:1!important;visibility:visible!important;transform:none!important}html:not(.print-pdf) .reveal section img{display:block;margin:15px 0;background:#fff;border:1px solid #666;box-shadow:none}html:not(.print-pdf) .reveal section small{font-size:.8em}html:not(.print-pdf) .reveal .hljs{max-height:100%;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;font-size:15pt}html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers{white-space:nowrap}html:not(.print-pdf) .reveal .hljs td{font-size:inherit!important;color:inherit!important}}
      
      </style>
      
        <script type="text/x-mathjax-config">
          MathJax.Hub.Config({"extensions":["tex2jax.js"],"jax":["input/TeX","output/HTML-CSS"],"messageStyle":"none","tex2jax":{"processEnvironments":false,"processEscapes":true,"inlineMath":[["$","$"],["\\(","\\)"]],"displayMath":[["$$","$$"],["\\[","\\]"]],"skipTags":["script","noscript","style","textarea","pre","code"]},"displayAlign":"left","displayIndent":"0.05rem","TeX":{"equationNumbers":{"autoNumber":"none","useLabelIds":true},"extensions":["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js","action.js","cancel.js","enclose.js","mhchem.js","extpfeil.js"],"Macros":{"zerov":"{\\boldsymbol 0}","onev":"{\\boldsymbol 1}","av":"{\\boldsymbol a}","bv":"{\\boldsymbol b}","cv":"{\\boldsymbol c}","dv":"{\\boldsymbol d}","ev":"{\\boldsymbol e}","fv":"{\\boldsymbol f}","gv":"{\\boldsymbol g}","hv":"{\\boldsymbol h}","iv":"{\\boldsymbol i}","jv":"{\\boldsymbol j}","kv":"{\\boldsymbol k}","lv":"{\\boldsymbol l}","mv":"{\\boldsymbol m}","nv":"{\\boldsymbol n}","ov":"{\\boldsymbol o}","pv":"{\\boldsymbol p}","qv":"{\\boldsymbol q}","rv":"{\\boldsymbol r}","sv":"{\\boldsymbol s}","tv":"{\\boldsymbol t}","uv":"{\\boldsymbol u}","vv":"{\\boldsymbol v}","wv":"{\\boldsymbol w}","xv":"{\\boldsymbol x}","yv":"{\\boldsymbol y}","zv":"{\\boldsymbol z}","Av":"{\\mathbf A}","Bv":"{\\mathbf B}","Cv":"{\\mathbf C}","Dv":"{\\mathbf D}","Ev":"{\\mathbf E}","Fv":"{\\mathbf F}","Gv":"{\\mathbf G}","Hv":"{\\mathbf H}","Iv":"{\\mathbf I}","Jv":"{\\mathbf J}","Kv":"{\\mathbf K}","Lv":"{\\mathbf L}","Mv":"{\\mathbf M}","Nv":"{\\mathbf N}","Ov":"{\\mathbf O}","Pv":"{\\mathbf P}","Qv":"{\\mathbf Q}","Rv":"{\\mathbf R}","Sv":"{\\mathbf S}","Tv":"{\\mathbf T}","Uv":"{\\mathbf U}","Vv":"{\\mathbf V}","Wv":"{\\mathbf W}","Xv":"{\\mathbf X}","Yv":"{\\mathbf Y}","Zv":"{\\mathbf Z}","alphav":"{\\boldsymbol {\\alpha}}","betav":"{\\boldsymbol {\\beta}}","lambdav":"{\\boldsymbol {\\lambda}}","muv":"{\\boldsymbol {\\mu}}","thetav":"{\\boldsymbol {\\theta}}","phiv":"{\\boldsymbol {\\phi}}","zetav":"{\\boldsymbol {\\zeta}}","deltav":"{\\boldsymbol {\\delta}}","Sigmav":"{\\boldsymbol {\\Sigma}}","Phiv":"{\\boldsymbol {\\Phi}}","Lambdav":"{\\boldsymbol {\\Lambda}}","Omegav":"{\\boldsymbol {\\Omega}}","Cbb":"{\\mathbb C}","Ebb":"{\\mathbb E}","Hbb":"{\\mathbb H}","Nbb":"{\\mathbb N}","Pbb":"{\\mathbb P}","Qbb":"{\\mathbb Q}","Rbb":"{\\mathbb R}","Zbb":"{\\mathbb Z}","Acal":"{\\mathcal A}","Bcal":"{\\mathcal B}","Ccal":"{\\mathcal C}","Dcal":"{\\mathcal D}","Ecal":"{\\mathcal E}","Fcal":"{\\mathcal F}","Gcal":"{\\mathcal G}","Hcal":"{\\mathcal H}","Ical":"{\\mathcal I}","Lcal":"{\\mathcal L}","Mcal":"{\\mathcal M}","Ncal":"{\\mathcal N}","Pcal":"{\\mathcal P}","Rcal":"{\\mathcal R}","Scal":"{\\mathcal S}","Ucal":"{\\mathcal U}","Vcal":"{\\mathcal V}","Wcal":"{\\mathcal W}","Xcal":"{\\mathcal X}","Ycal":"{\\mathcal Y}","fhat":"{\\hat f}","yhat":"{\\hat y}","yvhat":"{\\hat {\\yv}}","Xvhat":"{\\hat {\\Xv}}","wvt":"{\\tilde {\\wv}}","xvt":"{\\tilde {\\xv}}","yvt":"{\\tilde {\\yv}}","Kvt":"{\\tilde {\\Kv}}","xbar":"{\\bar {x}}","ybar":"{\\bar {y}}","yvbar":"{\\bar {\\yv}}","Ffrak":"{\\mathfrak F}","sup":["{{(#1)}}",1],"diff":"{\\mathrm {d}}","diag":"{\\mathrm {diag}}","span":"{\\mathrm {span}}","sign":"{\\mathrm {sign}}","sgn":"{\\mathrm {sgn}}","st":"{\\mathrm {s.t.}}","VC":"{\\mathrm {VC}}","Pr":"{\\mathrm {Pr}}","tanh":"{\\mathrm {Tanh}}","relu":"{\\mathrm {ReLU}}","lrelu":"{\\mathrm {LeakyReLU}}","prelu":"{\\mathrm {PReLU}}","elu":"{\\mathrm {ELU}}","softplus":"{\\mathrm {Softplus}}","swish":"{\\mathrm {Swish}}","maxout":"{\\mathrm {Maxout}}","const":"{\\mathrm {const}}","cov":"{\\mathrm {cov}}","grad":"{\\mathrm {grad}}","div":"{\\mathrm {div}}","var":"{\\mathrm {var}}","softmax":"{\\mathrm {Softmax}}","att":"{\\mathrm {att}}","cut":"{\\mathrm {cut}}","rcut":"{\\mathrm {RatioCut}}","ncut":"{\\mathrm {NCut}}","tr":"{\\mathrm {tr}}","vol":"{\\mathrm {vol}}","mlp":"{\\mathrm {MLP}}","update":"{\\mathrm {Update}}","aggregate":"{\\mathrm {Aggregate}}","self":"{\\mathrm {self}}","set":"{\\mathrm {set}}","neigh":"{\\mathrm {neigh}}","base":"{\\mathrm {base}}","NULL":"{\\mathrm {NULL}}","new":"{\\mathrm {new}}","gru":"{\\mathrm {GRU}}","lstm":"{\\mathrm {LSTM}}","edge":"{\\mathrm {edge}}","node":"{\\mathrm {node}}","graph":"{\\mathrm {graph}}","train":"{\\mathrm {train}}","dec":"{\\mathrm {Dec}}","sym":"{\\mathrm {sym}}","modd":"{\\mathrm {mod} ~ }","hp":"{\\mathrm {hp}}","gen":"{\\mathrm {gen}}","rot":"{\\mathbf {rot180}}","up":"{\\mathbf {up}}","cen":"{\\mathrm {cen}}","con":"{\\mathrm {con}}","argmin":"{\\mathop{\\mathrm{argmin}}}","argmax":"{\\mathop{\\mathrm{argmax}}}"}},"HTML-CSS":{"linebreaks":{"automatic":false},"scale":100,"styles":{".MathJax_Display":{"margin":"0.6rem auto 1rem 0 !important","border-radius":"0px !important","font-size":"1.8rem !important","color":"#d33682","text-align":"left !important"},".MathJax":{"margin-left":"0.2rem !important","margin-right":"0rem !important","border":"0px solid #ccc !important","color":"#d33682"}},"availableFonts":["TeX"]}});
        </script>
        <script type="text/javascript" async="" src="../common/js/mathjax/MathJax.js" charset="UTF-8"></script>
        
      
      
      
        <script src="../common/js/head.min.js"></script>
        <script src="../common/js/reveal.js"></script>
      
      
      
      
      
      
      <style>
      /**
 * prism.js Github theme based on GitHub's theme.
 * @author Sam Clarke
 */
code[class*="language-"],
pre[class*="language-"] {
  color: #333;
  background: none;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}

/* highlight */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em;
}
pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}

pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: hsla(24, 20%, 50%,.08);
  background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}

pre[data-line] .line-highlight:before, 
pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: hsla(24, 20%, 50%,.4);
  color: hsl(24, 20%, 95%);
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}

pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em;
}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview .pagebreak,.markdown-preview .newpage{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center !important}.markdown-preview:not([for="preview"]) .code-chunk .btn-group{display:none}.markdown-preview:not([for="preview"]) .code-chunk .status{display:none}.markdown-preview:not([for="preview"]) .code-chunk .output-div{margin-bottom:16px}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0}@media screen and (min-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{font-size:14px !important;padding:1em}}@media print{html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,0.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{padding:0 1.6em;margin-top:.8em}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc li{margin-bottom:.8em}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{list-style-type:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% -  300px);padding:2em calc(50% - 457px -  150px);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
/* Please visit the URL below for more information: */
/*   https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */

      </style>
    </head>
    <body for="html-export" data-presentation-mode="">
      <div class="mume markdown-preview  " data-presentation-mode="">
      
    <div style="display:none;"><link rel="stylesheet" href="../common/css/font-awesome-4.7.0/css/font-awesome.css">
<link rel="stylesheet" href="../common/css/style-color.css">
<link rel="stylesheet" href="../common/css/margin.css">
</div>
    <div class="reveal">
      <div class="slides">
        <section data-notes="" lineno="11" class="slide " data-line="11" data-h="0" data-v="0">
<div class="header"><img class="hust" src=""></div>
<div class="bottom15"></div>
<h1 class="mume-header" id="%E5%9B%BE%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%AF%BC%E8%AE%BA">图神经网络导论</h1>

<hr class="width50">
<h2 class="mume-header" id="%E5%9B%BE%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C">图神经网络</h2>

<div class="bottom5"></div>
<h3 class="mume-header" id="%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%E4%B8%8E%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2-nbsp-nbsp-%E5%BC%A0%E8%85%BE">计算机科学与技术学院 &nbsp; &nbsp; 张腾</h3>

<br>
<h4 class="mume-header" id="tengzhanghusteducn"><a href="mailto:tengzhang@hust.edu.cn">tengzhang@hust.edu.cn</a></h4>

</section><section><section data-notes="" lineno="30" class="slide " data-line="30" data-h="1" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>编码器 - 解码器模型</h5></div></div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjQzMS42NjgwOXB0IgogICBoZWlnaHQ9IjExNy4wMTU3NnB0IgogICB2aWV3Qm94PSIwIDAgNDMxLjY2ODA5IDExNy4wMTU3NiIKICAgdmVyc2lvbj0iMS4yIgogICBpZD0ic3ZnMzA3IgogICBzb2RpcG9kaTpkb2NuYW1lPSJzZXEyc2VxLWFzeW4uc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3MzA5IgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB0IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIwLjY4MDg3MTIxIgogICAgIGlua3NjYXBlOmN4PSIyODQuMTk0NzEiCiAgICAgaW5rc2NhcGU6Y3k9IjQzMS43OTk3MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM4NDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMjM0NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iNTQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmczMDciIC8+CiAgPGRlZnMKICAgICBpZD0iZGVmczUyIj4KICAgIDxnCiAgICAgICBpZD0iZzUwIj4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDAuNTkzNzUsMCB2IC01LjY3MTg3NSBoIDQuODEyNSBWIDAgWiBtIDAuNjA5Mzc1LC0wLjU5Mzc1IGggMy41OTM3NSB2IC00LjQ4NDM3NSBoIC0zLjU5Mzc1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgyIiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJNIDAuNzk2ODc1LDAuMDYyNSBDIDAuNjkxNDA2LDAuMDYyNSAwLjYwMTU2MiwwLjA1MDc4MTIgMC41MzEyNSwwLjAzMTI1IDAuNDY4NzUsMC4wMDc4MTI1IDAuNDM3NSwtMC4wMjM0Mzc1IDAuNDM3NSwtMC4wNzgxMjUgYyAwLC0wLjA5Mzc1IDAuMTMyODEyLC0wLjE2MDE1NiAwLjQwNjI1LC0wLjIwMzEyNSAwLjMwMDc4MSwtMC4wNjI1IDAuNTIzNDM4LC0wLjE1NjI1IDAuNjcxODc1LC0wLjI4MTI1IDAuMTQ0NTMxLC0wLjEyNSAwLjIxODc1LC0wLjMzMjAzMSAwLjIxODc1LC0wLjYyNSB2IC01LjQwNjI1IGMgMCwtMC4yODEyNSAtMC4wNjI1LC0wLjQ3NjU2MiAtMC4xODc1LC0wLjU5Mzc1IC0wLjExNzE4NywtMC4xMjUgLTAuMzI0MjE5LC0wLjIxODc1IC0wLjYyNSwtMC4yODEyNSBDIDAuNzg1MTU2LC03LjQ4ODI4MSAwLjY4NzUsLTcuNTE5NTMxIDAuNjI1LC03LjU2MjUgMC41NjI1LC03LjYwMTU2MiAwLjUzMTI1LC03LjY0ODQzOCAwLjUzMTI1LC03LjcwMzEyNSBjIDAsLTAuMDUwNzgxIDAuMDMxMjUsLTAuMDg1OTM3IDAuMDkzNzUsLTAuMTA5Mzc1IDAuMDYyNSwtMC4wMTk1MzEgMC4xNDQ1MzEsLTAuMDMxMjUgMC4yNSwtMC4wMzEyNSAwLjMwMDc4MSwwIDAuNTU0Njg4LDAuMDA3ODEgMC43NjU2MjUsMC4wMTU2MjUgMC4yMTg3NSwwLjAxMTcxOSAwLjQyNTc4MSwwLjAyMzQzNyAwLjYyNSwwLjAzMTI1IDAuMjA3MDMxLDAgMC40NTMxMjUsMCAwLjczNDM3NSwwIDAuMjU3ODEyLDAgMC41MzUxNTYsMCAwLjgyODEyNSwwIDAuMjg5MDYzLC0wLjAwNzgxIDAuNTYyNSwtMC4wMTU2MjUgMC44MTI1LC0wLjAxNTYyNSAwLjI2OTUzMSwtMC4wMDc4MSAwLjUsLTAuMDE1NjI1IDAuNjg3NSwtMC4wMTU2MjUgMC4xODc1LC0wLjAwNzgxIDAuMjk2ODc1LC0wLjAxNTYyNSAwLjMyODEyNSwtMC4wMTU2MjUgMC4wMzkwNjIsMCAwLjA4NTkzOCwwLjAxMTcxOSAwLjE0MDYyNSwwLjAzMTI1IEMgNS44NDc2NTYsLTcuNzg5MDYyIDUuODc1LC03Ljc2NTYyNSA1Ljg3NSwtNy43MzQzNzUgNS45MTQwNjIsLTcuNTAzOTA2IDUuOTU3MDMxLC03LjI4MTI1IDYsLTcuMDYyNSBjIDAuMDM5MDYyLDAuMjE4NzUgMC4wNjI1LDAuNDE0MDYyIDAuMDYyNSwwLjU3ODEyNSAwLDAuMDYyNSAtMC4wMjM0MzgsMC4xMDkzNzUgLTAuMDYyNSwwLjE0MDYyNSAtMC4wMzEyNSwwLjAyMzQzOCAtMC4wNzAzMTIsMC4wMzEyNSAtMC4xMDkzNzUsMC4wMzEyNSAtMC4wNDI5NjksMCAtMC4wNzQyMTksLTAuMDA3ODEgLTAuMDkzNzUsLTAuMDMxMjUgQyA1Ljc4NTE1NiwtNi4zNjMyODEgNS43NzM0MzgsLTYuMzk0NTMxIDUuNzY1NjI1LC02LjQzNzUgNS43MjI2NTYsLTYuNTcwMzEyIDUuNjc5Njg4LC02LjcwMzEyNSA1LjY0MDYyNSwtNi44MjgxMjUgNS41OTc2NTYsLTYuOTUzMTI1IDUuNTUwNzgxLC03LjAzOTA2MiA1LjUsLTcuMDkzNzUgNS4zODI4MTIsLTcuMjE4NzUgNS4yNTc4MTIsLTcuMzAwNzgxIDUuMTI1LC03LjM0Mzc1IDQuOTg4MjgxLC03LjM5NDUzMSA0Ljg0Mzc1LC03LjQyMTg3NSA0LjY4NzUsLTcuNDIxODc1IEggMy4xMjUgYyAtMC4wNjI1LDAgLTAuMTUyMzQ0LDAuMDM5MDYzIC0wLjI2NTYyNSwwLjEwOTM3NSBDIDIuNzQyMTg4LC03LjIzODI4MSAyLjY4NzUsLTcuMTQ0NTMxIDIuNjg3NSwtNy4wMzEyNSB2IDIuNTQ2ODc1IGMgMCwwLjA3NDIxOSAwLjAxOTUzMSwwLjEzNjcxOSAwLjA2MjUsMC4xODc1IDAuMDM5MDYyLDAuMDU0Njg3IDAuMDkzNzUsMC4wNzgxMjUgMC4xNTYyNSwwLjA3ODEyNSBoIDEuMTg3NSBjIDAuMjI2NTYyLDAgMC4zODI4MTIsLTAuMDM5MDYyIDAuNDY4NzUsLTAuMTI1IEMgNC42NTYyNSwtNC40MjU3ODEgNC43MjY1NjIsLTQuNTgyMDMxIDQuNzgxMjUsLTQuODEyNSA0LjgzMjAzMSwtNC45ODgyODEgNC45MDYyNSwtNS4wNzgxMjUgNSwtNS4wNzgxMjUgYyAwLjAzMTI1LDAgMC4wNjI1LDAuMDE1NjI1IDAuMDkzNzUsMC4wNDY4NzUgMC4wMzkwNjIsMC4wMzEyNSAwLjA2MjUsMC4wNzgxMjUgMC4wNjI1LDAuMTQwNjI1IDAsMC4wMzEyNSAtMC4wMDc4MSwwLjEwNTQ2OSAtMC4wMTU2MjUsMC4yMTg3NSAwLDAuMTE3MTg3IC0wLjAwNzgxLDAuMjM0Mzc1IC0wLjAxNTYyNSwwLjM1OTM3NSAwLDAuMTE3MTg4IDAsMC4yMDMxMjUgMCwwLjI2NTYyNSAwLDAuMDg1OTM3IDAsMC4xOTUzMTMgMCwwLjMyODEyNSAwLjAwNzgxLDAuMTI1IDAuMDE1NjI1LDAuMjUgMC4wMTU2MjUsMC4zNzUgMCwwLjExNzE4OCAwLDAuMTg3NSAwLDAuMjE4NzUgMCwwLjA2MjUgLTAuMDA3ODEsMC4xMTcxODggLTAuMDE1NjI1LDAuMTU2MjUgLTAuMDExNzE5LDAuMDMxMjUgLTAuMDM5MDYyLDAuMDQ2ODc1IC0wLjA3ODEyNSwwLjA0Njg3NSAtMC4xMjUsMCAtMC4yMTg3NSwtMC4xMjUgLTAuMjgxMjUsLTAuMzc1IEMgNC43MTA5MzgsLTMuNDg0Mzc1IDQuNjQ0NTMxLC0zLjYxNzE4OCA0LjU2MjUsLTMuNzAzMTI1IDQuNDg4MjgxLC0zLjc5Njg3NSA0LjM3NSwtMy44NDM3NSA0LjIxODc1LC0zLjg0Mzc1IGggLTEuMTI1IGMgLTAuMTM2NzE5LDAgLTAuMjQyMTg4LDAuMDIzNDM4IC0wLjMxMjUsMC4wNjI1IC0wLjA2MjUsMC4wMzEyNSAtMC4wOTM3NSwwLjExNzE4OCAtMC4wOTM3NSwwLjI1IHYgMi4zMTI1IGMgMCwwLjMwNDY4OCAwLjA2MjUsMC41MTE3MTkgMC4xODc1LDAuNjI1IDAuMTMyODEyLDAuMTE3MTg4IDAuMzM1OTM4LDAuMTcxODc1IDAuNjA5Mzc1LDAuMTcxODc1IEggNC4zNzUgYyAwLjI1LDAgMC40NTcwMzEsLTAuMDA3ODEzIDAuNjI1LC0wLjAzMTI1IDAuMTc1NzgxLC0wLjAzMTI1IDAuMzI4MTI1LC0wLjA4NTkzNyAwLjQ1MzEyNSwtMC4xNzE4NzUgMC4xMzI4MTMsLTAuMDgyMDMxIDAuMjUsLTAuMTk1MzEyIDAuMzQzNzUsLTAuMzQzNzUgMC4xMDE1NjMsLTAuMTQ0NTMxIDAuMjE4NzUsLTAuMzM1OTM4IDAuMzQzNzUsLTAuNTc4MTI1IDAuMDMxMjUsLTAuMDUwNzgxIDAuMDYyNSwtMC4wOTM3NSAwLjA5Mzc1LC0wLjEyNSAwLjAzMTI1LC0wLjAzMTI1IDAuMDY2NDA2LC0wLjAzOTA2MyAwLjEwOTM3NSwtMC4wMzEyNSAwLjAzMTI1LDAuMDExNzE5IDAuMDU0Njg4LDAuMDMxMjUgMC4wNzgxMjUsMC4wNjI1IDAuMDMxMjUsMC4wMjM0MzcgMC4wNDY4NzUsMC4wNTg1OTQgMC4wNDY4NzUsMC4xMDkzNzUgMCwwLjA3NDIxOSAtMC4wMjM0MzgsMC4xOTkyMTkgLTAuMDYyNSwwLjM3NSBDIDYuMzYzMjgxLC0wLjk3NjU2MiA2LjMxMjUsLTAuNzg5MDYyIDYuMjUsLTAuNTkzNzUgNi4xOTUzMTIsLTAuNDA2MjUgNi4xNDQ1MzEsLTAuMjUzOTA2IDYuMDkzNzUsLTAuMTQwNjI1IDYuMDcwMzEyLC0wLjA4NTkzNzUgNi4wNTA3ODEsLTAuMDM5MDYyNSA2LjAzMTI1LDAgNi4wMDc4MTIsMC4wMzkwNjI1IDUuOTcyNjU2LDAuMDYyNSA1LjkyMTg3NSwwLjA2MjUgYyAtMC4zNzUsMCAtMC43MzA0NjksLTAuMDA3ODEyNSAtMS4wNjI1LC0wLjAxNTYyNSBDIDQuNTM1MTU2LDAuMDM1MTU2MiA0LjIyMjY1NiwwLjAyMzQzNzUgMy45MjE4NzUsMC4wMTU2MjUgMy42Mjg5MDYsMC4wMTU2MjUgMy4zMzU5MzgsMC4wMDc4MTI1IDMuMDQ2ODc1LDAgMi43NjU2MjUsLTAuMDA3ODEyNSAyLjQ3MjY1NiwtMC4wMTU2MjUgMi4xNzE4NzUsLTAuMDE1NjI1IDEuOTkyMTg4LC0wLjAxNTYyNSAxLjg0Mzc1LC0wLjAwNzgxMjUgMS43MTg3NSwwIDEuNTkzNzUsMC4wMTk1MzEyIDEuNDU3MDMxLDAuMDM1MTU2MiAxLjMxMjUsMC4wNDY4NzUgMS4xNzU3ODEsMC4wNTQ2ODc1IDEuMDAzOTA2LDAuMDYyNSAwLjc5Njg3NSwwLjA2MjUgWiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDUiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgwLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNC41MzEyNSwwLjE3MTg3NSBDIDQsMC4xNzE4NzUgMy40OTIxODgsMC4wNzgxMjUgMy4wMTU2MjUsLTAuMTA5Mzc1IDIuNTM1MTU2LC0wLjI5Njg3NSAyLjEwOTM3NSwtMC41NjI1IDEuNzM0Mzc1LC0wLjkwNjI1IGMgLTAuMzY3MTg3LC0wLjM1MTU2MiAtMC42NTYyNSwtMC43Njk1MzEgLTAuODc1LC0xLjI1IC0wLjIxMDkzNywtMC40ODgyODEgLTAuMzEyNSwtMS4wMzEyNSAtMC4zMTI1LC0xLjYyNSAwLC0wLjUzOTA2MiAwLjA4MjAzMSwtMS4wNjI1IDAuMjUsLTEuNTYyNSAwLjE3NTc4MSwtMC41IDAuNDM3NSwtMC45NDE0MDYgMC43ODEyNSwtMS4zMjgxMjUgMC4zNDM3NSwtMC4zOTQ1MzEgMC43Njk1MzEsLTAuNzA3MDMxIDEuMjgxMjUsLTAuOTM3NSBDIDMuMzc4OTA2LC03Ljg0NzY1NiAzLjk2ODc1LC03Ljk2ODc1IDQuNjI1LC03Ljk2ODc1IGMgMC41MzEyNSwwIDEuMDM1MTU2LDAuMDkzNzUgMS41MTU2MjUsMC4yODEyNSAwLjQ3NjU2MywwLjE4NzUgMC44OTg0MzcsMC40NjA5MzggMS4yNjU2MjUsMC44MTI1IDAuMzc1LDAuMzQzNzUgMC42NjQwNjIsMC43NjE3MTkgMC44NzUsMS4yNSAwLjIxODc1LDAuNDgwNDY5IDAuMzI4MTI1LDEuMDE1NjI1IDAuMzI4MTI1LDEuNjA5Mzc1IDAsMC41MzEyNSAtMC4wODk4NDQsMS4wNTQ2ODcgLTAuMjY1NjI1LDEuNTYyNSAtMC4xNjc5NjksMC41IC0wLjQyMTg3NSwwLjk0OTIxOSAtMC43NjU2MjUsMS4zNDM3NSAtMC4zNDM3NSwwLjM4NjcxOSAtMC43NzczNDQsMC42OTkyMTkgLTEuMjk2ODc1LDAuOTM3NSAtMC41MTE3MTksMC4yMjY1NjI1IC0xLjA5Mzc1LDAuMzQzNzUgLTEuNzUsMC4zNDM3NSB6IE0gNC43MDMxMjUsLTAuMzEyNSBjIDAuNjEzMjgxLDAgMS4xMjUsLTAuMTI4OTA2IDEuNTMxMjUsLTAuMzkwNjI1IDAuNDE0MDYzLC0wLjI1NzgxMyAwLjcyMjY1NiwtMC42MjUgMC45MjE4NzUsLTEuMDkzNzUgMC4yMDcwMzEsLTAuNDY4NzUgMC4zMTI1LC0xLjAxNTYyNSAwLjMxMjUsLTEuNjQwNjI1IDAsLTAuNTUwNzgxIC0wLjA3MDMxMiwtMS4wNjY0MDYgLTAuMjAzMTI1LC0xLjU0Njg3NSAtMC4xMjUsLTAuNDg4MjgxIC0wLjMxMjUsLTAuOTIxODc1IC0wLjU2MjUsLTEuMjk2ODc1IC0wLjI1LC0wLjM3NSAtMC41NjI1LC0wLjY2NDA2MiAtMC45Mzc1LC0wLjg3NSAtMC4zNzUsLTAuMjA3MDMxIC0wLjgyMDMxMywtMC4zMTI1IC0xLjMyODEyNSwtMC4zMTI1IC0wLjU5Mzc1LDAgLTEuMTAxNTYyLDAuMTMyODEyIC0xLjUxNTYyNSwwLjM5MDYyNSBDIDIuNTE1NjI1LC02LjgyODEyNSAyLjIwNzAzMSwtNi40Njg3NSAyLC02IGMgLTAuMjEwOTM4LDAuNDYwOTM4IC0wLjMxMjUsMSAtMC4zMTI1LDEuNjI1IDAsMC41NTQ2ODggMC4wNjI1LDEuMDc0MjE5IDAuMTg3NSwxLjU2MjUgMC4xMjUsMC40OTIxODggMC4zMTI1LDAuOTIxODc1IDAuNTYyNSwxLjI5Njg3NSAwLjI1LDAuMzc1IDAuNTYyNSwwLjY3MTg3NSAwLjkzNzUsMC44OTA2MjUgMC4zODI4MTIsMC4yMTA5MzggMC44MjgxMjUsMC4zMTI1IDEuMzI4MTI1LDAuMzEyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoOCIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtMyI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAyLjQ1MzEyNSwwLjE4NzUgYyAtMC4zNDM3NSwwIC0wLjY1NjI1LC0wLjA1NDY4OCAtMC45Mzc1LC0wLjE1NjI1IEMgMS4yMzQzNzUsLTAuMDYyNSAwLjk3NjU2MiwtMC4yMDMxMjUgMC43NSwtMC4zOTA2MjUgMC43MTg3NSwtMC40MjE4NzUgMC42ODc1LC0wLjQ1MzEyNSAwLjY1NjI1LC0wLjQ4NDM3NSAwLjYzMjgxMiwtMC41MjM0MzggMC42MTMyODEsLTAuNTcwMzEyIDAuNTkzNzUsLTAuNjI1IDAuNTYyNSwtMC43ODEyNSAwLjUzNTE1NiwtMC45ODQzNzUgMC41MTU2MjUsLTEuMjM0Mzc1IDAuNTAzOTA2LC0xLjQ5MjE4OCAwLjQ5MjE4OCwtMS43MTA5MzggMC40ODQzNzUsLTEuODkwNjI1IGMgMCwtMC4wNTA3ODEgMC4wMTk1MzEsLTAuMDg1OTM3IDAuMDYyNSwtMC4xMDkzNzUgMC4wNTA3ODEsLTAuMDMxMjUgMC4xMDkzNzUsLTAuMDQ2ODc1IDAuMTcxODc1LC0wLjA0Njg3NSAwLjAzOTA2MiwwIDAuMDgyMDMxLDAuMDExNzE5IDAuMTI1LDAuMDMxMjUgMC4wMzkwNjIsMC4wMjM0MzcgMC4wNjI1LDAuMDU0Njg3IDAuMDYyNSwwLjA5Mzc1IDAuMTY0MDYyLDAuNjE3MTg3IDAuNDA2MjUsMS4wNTg1OTQgMC43MTg3NSwxLjMyODEyNSAwLjMxMjUsMC4yNjE3MTkgMC42NDA2MjUsMC4zOTA2MjUgMC45ODQzNzUsMC4zOTA2MjUgMC4yODEyNSwwIDAuNTMxMjUsLTAuMDU0Njg3IDAuNzUsLTAuMTcxODc1IEMgMy41NzgxMjUsLTAuNSAzLjc1LC0wLjY3MTg3NSAzLjg3NSwtMC44OTA2MjUgNCwtMS4xMDkzNzUgNC4wNjI1LC0xLjM2NzE4OCA0LjA2MjUsLTEuNjcxODc1IDQuMDYyNSwtMS45OTIxODggNC4wMDM5MDYsLTIuMjUzOTA2IDMuODkwNjI1LC0yLjQ1MzEyNSAzLjc4NTE1NiwtMi42NjAxNTYgMy42Mjg5MDYsLTIuODQzNzUgMy40MjE4NzUsLTMgMy4yMjI2NTYsLTMuMTU2MjUgMi45ODQzNzUsLTMuMzE2NDA2IDIuNzAzMTI1LC0zLjQ4NDM3NSAyLjM5MDYyNSwtMy42OTE0MDYgMi4wNzgxMjUsLTMuODk0NTMxIDEuNzY1NjI1LC00LjA5Mzc1IDEuNDYwOTM4LC00LjMwMDc4MSAxLjIxMDkzOCwtNC41MzUxNTYgMS4wMTU2MjUsLTQuNzk2ODc1IDAuODE2NDA2LC01LjA2NjQwNiAwLjcxODc1LC01LjM5NDUzMSAwLjcxODc1LC01Ljc4MTI1IGMgMCwtMC40MDYyNSAwLjA4NTkzOCwtMC43Njk1MzEgMC4yNjU2MjUsLTEuMDkzNzUgMC4xODc1LC0wLjMzMjAzMSAwLjQ2ODc1LC0wLjU5NzY1NiAwLjg0Mzc1LC0wLjc5Njg3NSAwLjM3NSwtMC4xOTUzMTMgMC44NDM3NSwtMC4yOTY4NzUgMS40MDYyNSwtMC4yOTY4NzUgMC4yODEyNSwwIDAuNTIzNDM3LDAuMDMxMjUgMC43MzQzNzUsMC4wOTM3NSAwLjIxODc1LDAuMDYyNSAwLjM5MDYyNSwwLjEyMTA5NCAwLjUxNTYyNSwwLjE3MTg3NSAwLjA2MjUsMC4wMjM0MzcgMC4xMTMyODEsMC4wNjI1IDAuMTU2MjUsMC4xMjUgMC4wNTA3ODEsMC4wNTQ2ODcgMC4wODIwMzEsMC4xMDkzNzUgMC4wOTM3NSwwLjE3MTg3NSAwLjA1MDc4MSwwLjE2Nzk2OSAwLjEwMTU2MywwLjM1OTM3NSAwLjE1NjI1LDAuNTc4MTI1IDAuMDYyNSwwLjIxODc1IDAuMDkzNzUsMC40MjE4NzUgMC4wOTM3NSwwLjYwOTM3NSAwLDAuMDkzNzUgLTAuMDYyNSwwLjE0MDYyNSAtMC4xODc1LDAuMTQwNjI1IC0wLjA3NDIxOSwwIC0wLjE0ODQzNywtMC4wMTU2MjUgLTAuMjE4NzUsLTAuMDQ2ODc1IEMgNC41MTU2MjUsLTYuMTY0MDYyIDQuNDc2NTYyLC02LjIwNzAzMSA0LjQ2ODc1LC02LjI1IDQuMzAwNzgxLC02LjY3NTc4MSA0LjEwMTU2MiwtNyAzLjg3NSwtNy4yMTg3NSAzLjY1NjI1LC03LjQ0NTMxMiAzLjM3NSwtNy41NjI1IDMuMDMxMjUsLTcuNTYyNSBjIC0wLjI1LDAgLTAuNDgwNDY5LDAuMDQ2ODc1IC0wLjY4NzUsMC4xNDA2MjUgLTAuMTk5MjE5LDAuMDg1OTM3IC0wLjM2NzE4OCwwLjIyNjU2MyAtMC41LDAuNDIxODc1IC0wLjEzNjcxOSwwLjE5OTIxOSAtMC4yMDMxMjUsMC40Njg3NSAtMC4yMDMxMjUsMC44MTI1IDAsMC4yNDIxODggMC4wNzgxMjUsMC40NjA5MzggMC4yMzQzNzUsMC42NTYyNSAwLjE1NjI1LDAuMTg3NSAwLjM1OTM3NSwwLjM3MTA5NCAwLjYwOTM3NSwwLjU0Njg3NSAwLjI1NzgxMywwLjE3OTY4NyAwLjUzOTA2MywwLjM1OTM3NSAwLjg0Mzc1LDAuNTQ2ODc1IDAuMjgxMjUsMC4xNjc5NjkgMC41NTA3ODEsMC4zNTE1NjIgMC44MTI1LDAuNTQ2ODc1IDAuMjY5NTMxLDAuMTk5MjE5IDAuNDg4MjgxLDAuNDM3NSAwLjY1NjI1LDAuNzE4NzUgMC4xNzU3ODEsMC4yNzM0MzcgMC4yNjU2MjUsMC42MDkzNzUgMC4yNjU2MjUsMS4wMTU2MjUgMCwwLjQ2ODc1IC0wLjEwOTM3NSwwLjg4MjgxMiAtMC4zMjgxMjUsMS4yMzQzNzUgLTAuMjEwOTM3LDAuMzU1NDY5IC0wLjUxMTcxOSwwLjYzMjgxMyAtMC45MDYyNSwwLjgyODEyNSAtMC4zOTg0MzcsMC4xODc1IC0wLjg1NTQ2OSwwLjI4MTI1IC0xLjM3NSwwLjI4MTI1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgxMSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtNCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAxLjM3NSwwLjE3MTg3NSBjIC0wLjE3OTY4OCwwIC0wLjMzNTkzOCwtMC4wNzAzMTMgLTAuNDY4NzUsLTAuMjAzMTI1IC0wLjEyNSwtMC4xMzI4MTIgLTAuMTg3NSwtMC4yODUxNTYgLTAuMTg3NSwtMC40NTMxMjUgMCwtMC4xODc1IDAuMDYyNSwtMC4zNDM3NSAwLjE4NzUsLTAuNDY4NzUgMC4xMzI4MTIsLTAuMTMyODEzIDAuMjg5MDYyLC0wLjIwMzEyNSAwLjQ2ODc1LC0wLjIwMzEyNSAwLjE4NzUsMCAwLjM0Mzc1LDAuMDcwMzEyIDAuNDY4NzUsMC4yMDMxMjUgMC4xMzI4MTIsMC4xMjUgMC4yMDMxMjUsMC4yODEyNSAwLjIwMzEyNSwwLjQ2ODc1IDAsMC4xNjc5NjkgLTAuMDcwMzEzLDAuMzIwMzEzIC0wLjIwMzEyNSwwLjQ1MzEyNSBDIDEuNzE4NzUsMC4xMDE1NjIgMS41NjI1LDAuMTcxODc1IDEuMzc1LDAuMTcxODc1IFogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgxNCIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDEtMCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iIgogICAgICAgICAgIGlkPSJwYXRoMTciIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgxLTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNi4xODc1LC0zLjc5Njg3NSBDIDYuMjUsLTQuMTA5Mzc1IDYuMzc1LC00LjU3ODEyNSA2LjM3NSwtNC42ODc1IGMgMCwtMC4zOTA2MjUgLTAuMzEyNSwtMC41MzEyNSAtMC41NjI1LC0wLjUzMTI1IC0wLjIzNDM3NSwwIC0wLjQ2ODc1LDAuMTI1IC0wLjYwOTM3NSwwLjI5Njg3NSAtMC4xODc1LC0wLjE4NzUgLTAuNTc4MTI1LC0wLjUgLTEuMjgxMjUsLTAuNSAtMi4wNzgxMjUsMCAtMy4zNzUsMS44OTA2MjUgLTMuMzc1LDMuNTMxMjUgMCwxLjQ4NDM3NSAxLjA5Mzc1LDEuOTg0Mzc1IDIuMDkzNzUsMS45ODQzNzUgMC44NDM3NSwwIDEuNDY4NzUsLTAuNDY4NzUgMS42NzE4NzUsLTAuNjQwNjI1IDAuNDUzMTI1LDAuNjQwNjI1IDEuMjUsMC42NDA2MjUgMS4zNzUsMC42NDA2MjUgMC40Mzc1LDAgMC43OTY4NzUsLTAuMjUgMS4wNDY4NzUsLTAuNjg3NSAwLjI5Njg3NSwtMC40Njg3NSAwLjQ1MzEyNSwtMS4xMjUgMC40NTMxMjUsLTEuMTg3NSAwLC0wLjE1NjI1IC0wLjE3MTg3NSwtMC4xNTYyNSAtMC4yODEyNSwtMC4xNTYyNSAtMC4xNDA2MjUsMCAtMC4xODc1LDAgLTAuMjUsMC4wNDY4NzUgLTAuMDE1NjI1LDAuMDMxMjUgLTAuMDE1NjI1LDAuMDQ2ODc1IC0wLjA5Mzc1LDAuMzU5Mzc1IC0wLjIzNDM3NSwwLjk1MzEyNSAtMC41MTU2MjUsMS4xODc1IC0wLjgxMjUsMS4xODc1IC0wLjE0MDYyNSwwIC0wLjI4MTI1LC0wLjA0Njg3NSAtMC4yODEyNSwtMC40Mzc1IDAsLTAuMjAzMTI1IDAuMDQ2ODc1LC0wLjM5MDYyNSAwLjE3MTg3NSwtMC44NzUgMC4wNzgxMjUsLTAuMzI4MTI1IDAuMjAzMTI1LC0wLjgxMjUgMC4yNjU2MjUsLTEuMDc4MTI1IHogbSAtMiwyLjY4NzUgYyAtMC4zNDM3NSwwLjQwNjI1IC0wLjkwNjI1LDAuNzY1NjI1IC0xLjQ4NDM3NSwwLjc2NTYyNSAtMC43NSwwIC0wLjgxMjUsLTAuNjQwNjI1IC0wLjgxMjUsLTAuOTA2MjUgMCwtMC42MjUgMC40MDYyNSwtMi4wOTM3NSAwLjYwOTM3NSwtMi41NjI1IDAuMzc1LC0wLjg3NSAwLjk1MzEyNSwtMS4xNzE4NzUgMS40NTMxMjUsLTEuMTcxODc1IDAuNzAzMTI1LDAgMC45ODQzNzUsMC41NjI1IDAuOTg0Mzc1LDAuNjg3NSBMIDQuOTIxODc1LC00LjEyNSBaIG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMjAiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgxLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNi40Mzc1LC00LjgxMjUgQyA2LC00LjY4NzUgNS43ODEyNSwtNC4yODEyNSA1Ljc4MTI1LC0zLjk4NDM3NSA1Ljc4MTI1LC0zLjcxODc1IDUuOTg0Mzc1LC0zLjQzNzUgNi4zOTA2MjUsLTMuNDM3NSA2Ljc5Njg3NSwtMy40Mzc1IDcuMjUsLTMuNzgxMjUgNy4yNSwtNC4zNzUgNy4yNSwtNSA2LjYwOTM3NSwtNS40MjE4NzUgNS44NzUsLTUuNDIxODc1IDUuMjAzMTI1LC01LjQyMTg3NSA0Ljc1LC00LjkwNjI1IDQuNTkzNzUsLTQuNjg3NSA0LjI5Njg3NSwtNS4yMDMxMjUgMy42MjUsLTUuNDIxODc1IDIuOTM3NSwtNS40MjE4NzUgYyAtMS41MTU2MjUsMCAtMi4zMjgxMjUsMS40Njg3NSAtMi4zMjgxMjUsMS44NzUgMCwwLjE1NjI1IDAuMTg3NSwwLjE1NjI1IDAuMjk2ODc1LDAuMTU2MjUgMC4xNDA2MjUsMCAwLjIxODc1LDAgMC4yNjU2MjUsLTAuMTU2MjUgMC4zNTkzNzUsLTEuMDc4MTI1IDEuMjE4NzUsLTEuNDM3NSAxLjcwMzEyNSwtMS40Mzc1IDAuNDY4NzUsMCAwLjY3MTg3NSwwLjIwMzEyNSAwLjY3MTg3NSwwLjU5Mzc1IDAsMC4yMzQzNzUgLTAuMTU2MjUsMC44OTA2MjUgLTAuMjY1NjI1LDEuMzEyNSBMIDIuODc1LC0xLjQyMTg3NSBjIC0wLjE4NzUsMC43MTg3NSAtMC42MjUsMS4wNzgxMjUgLTEuMDMxMjUsMS4wNzgxMjUgLTAuMDYyNSwwIC0wLjMyODEyNSwwIC0wLjU3ODEyNSwtMC4xNzE4NzUgMC40Mzc1LC0wLjEyNSAwLjY1NjI1LC0wLjUzMTI1IDAuNjU2MjUsLTAuODI4MTI1IDAsLTAuMjY1NjI1IC0wLjIwMzEyNSwtMC41NDY4NzUgLTAuNjA5Mzc1LC0wLjU0Njg3NSAtMC40MDYyNSwwIC0wLjg1OTM3NSwwLjM0Mzc1IC0wLjg1OTM3NSwwLjkzNzUgMCwwLjYyNSAwLjY0MDYyNSwxLjA0Njg3NSAxLjM3NSwxLjA0Njg3NSAwLjY4NzUsMCAxLjEyNSwtMC41MTU2MjUgMS4yODEyNSwtMC43MzQzNzUgMC4yOTY4NzUsMC41MTU2MjUgMC45Njg3NSwwLjczNDM3NSAxLjY1NjI1LDAuNzM0Mzc1IDEuNTE1NjI1LDAgMi4zMjgxMjUsLTEuNDY4NzUgMi4zMjgxMjUsLTEuODc1IDAsLTAuMTU2MjUgLTAuMTg3NSwtMC4xNTYyNSAtMC4yOTY4NzUsLTAuMTU2MjUgLTAuMTQwNjI1LDAgLTAuMjE4NzUsMCAtMC4yNjU2MjUsMC4xNTYyNSAtMC4zNDM3NSwxLjA3ODEyNSAtMS4yMTg3NSwxLjQzNzUgLTEuNzAzMTI1LDEuNDM3NSAtMC40NTMxMjUsMCAtMC42NzE4NzUsLTAuMjAzMTI1IC0wLjY3MTg3NSwtMC41OTM3NSAwLC0wLjI1IDAuMTU2MjUsLTAuODkwNjI1IDAuMjY1NjI1LC0xLjMyODEyNSBDIDQuNSwtMi41NzgxMjUgNC43ODEyNSwtMy43MDMxMjUgNC44NDM3NSwtMy45MDYyNSA1LjAxNTYyNSwtNC42MjUgNS40Mzc1LC00Ljk4NDM3NSA1Ljg1OTM3NSwtNC45ODQzNzUgYyAwLjA2MjUsMCAwLjMyODEyNSwwIDAuNTc4MTI1LDAuMTcxODc1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgyMyIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDEtMyI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSA2LjkyMTg3NSwtNC41MzEyNSBjIDAuMDYyNSwtMC4yMDMxMjUgMC4wNjI1LC0wLjIzNDM3NSAwLjA2MjUsLTAuMjY1NjI1IDAsLTAuMjY1NjI1IC0wLjE4NzUsLTAuNTMxMjUgLTAuNTYyNSwtMC41MzEyNSAtMC42MjUsMCAtMC43NjU2MjUsMC41NjI1IC0wLjg1OTM3NSwwLjg5MDYyNSBsIC0wLjMxMjUsMS4yNSBjIC0wLjE0MDYyNSwwLjU3ODEyNSAtMC4zNTkzNzUsMS41IC0wLjUsMS45ODQzNzUgLTAuMDYyNSwwLjI2NTYyNSAtMC40Mzc1LDAuNTYyNSAtMC40Njg3NSwwLjU3ODEyNSAtMC4xMjUsMC4wNzgxMjUgLTAuNDIxODc1LDAuMjgxMjUgLTAuODEyNSwwLjI4MTI1IC0wLjcwMzEyNSwwIC0wLjcxODc1LC0wLjU5Mzc1IC0wLjcxODc1LC0wLjg3NSAwLC0wLjcxODc1IDAuMzc1LC0xLjY1NjI1IDAuNzAzMTI1LC0yLjUzMTI1IDAuMTI1LC0wLjMxMjUgMC4xNTYyNSwtMC4zOTA2MjUgMC4xNTYyNSwtMC41OTM3NSAwLC0wLjcwMzEyNSAtMC42ODc1LC0xLjA3ODEyNSAtMS4zNTkzNzUsLTEuMDc4MTI1IC0xLjI2NTYyNSwwIC0xLjg1OTM3NSwxLjYyNSAtMS44NTkzNzUsMS44NzUgMCwwLjE1NjI1IDAuMTcxODc1LDAuMTU2MjUgMC4yODEyNSwwLjE1NjI1IDAuMTQwNjI1LDAgMC4yMzQzNzUsMCAwLjI4MTI1LC0wLjE1NjI1IEMgMS4zNDM3NSwtNC44NzUgMiwtNC45ODQzNzUgMi4xODc1LC00Ljk4NDM3NSBjIDAuMDc4MTI1LDAgMC4yMDMxMjUsMCAwLjIwMzEyNSwwLjI1IDAsMC4yNjU2MjUgLTAuMTQwNjI1LDAuNTc4MTI1IC0wLjIwMzEyNSwwLjc4MTI1IC0wLjQ2ODc1LDEuMTg3NSAtMC43MTg3NSwxLjg3NSAtMC43MTg3NSwyLjQ4NDM3NSAwLDEuMzc1IDEuMTg3NSwxLjU2MjUgMS45MDYyNSwxLjU2MjUgMC4yOTY4NzUsMCAwLjcwMzEyNSwtMC4wNDY4NzUgMS4xNTYyNSwtMC4zNTkzNzUgLTAuMzQzNzUsMS40ODQzNzUgLTEuMjUsMi4yNSAtMi4wNzgxMjUsMi4yNSAtMC4xNTYyNSwwIC0wLjQ4NDM3NSwtMC4wMTU2MjUgLTAuNzE4NzUsLTAuMTU2MjUgMC4zNzUsLTAuMTU2MjUgMC41NjI1LC0wLjQ4NDM3NSAwLjU2MjUsLTAuODEyNSAwLC0wLjQyMTg3NSAtMC4zNDM3NSwtMC41NDY4NzUgLTAuNTc4MTI1LC0wLjU0Njg3NSAtMC40NTMxMjUsMCAtMC44NTkzNzUsMC4zOTA2MjUgLTAuODU5Mzc1LDAuOTA2MjUgMCwwLjYwOTM3NSAwLjYyNSwxLjA0Njg3NSAxLjU5Mzc1LDEuMDQ2ODc1IDEuMzkwNjI1LDAgMi45Njg3NSwtMC45MjE4NzUgMy4zNDM3NSwtMi40MDYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMjYiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgyLTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9IiIKICAgICAgICAgICBpZD0icGF0aDI5IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMi0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDIuNSwtNS4wNzgxMjUgYyAwLC0wLjIxODc1IC0wLjAxNTYyNSwtMC4yMTg3NSAtMC4yMzQzNzUsLTAuMjE4NzUgLTAuMzI4MTI1LDAuMzEyNSAtMC43NSwwLjUgLTEuNSwwLjUgdiAwLjI2NTYyNSBjIDAuMjE4NzUsMCAwLjY0MDYyNSwwIDEuMTA5Mzc1LC0wLjIwMzEyNSB2IDQuMDc4MTI1IGMgMCwwLjI5Njg3NSAtMC4wMzEyNSwwLjM5MDYyNSAtMC43ODEyNSwwLjM5MDYyNSBIIDAuODEyNSBWIDAgYyAwLjMyODEyNSwtMC4wMzEyNSAxLjAxNTYyNSwtMC4wMzEyNSAxLjM3NSwtMC4wMzEyNSAwLjM1OTM3NSwwIDEuMDQ2ODc1LDAgMS4zNzUsMC4wMzEyNSBWIC0wLjI2NTYyNSBIIDMuMjgxMjUgYyAtMC43NSwwIC0wLjc4MTI1LC0wLjA5Mzc1IC0wLjc4MTI1LC0wLjM5MDYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMzIiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgyLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gMi4yNSwtMS42MjUgYyAwLjEyNSwtMC4xMjUgMC40NTMxMjUsLTAuMzkwNjI1IDAuNTkzNzUsLTAuNSAwLjQ4NDM3NSwtMC40NTMxMjUgMC45NTMxMjUsLTAuODkwNjI1IDAuOTUzMTI1LC0xLjYwOTM3NSAwLC0wLjk1MzEyNSAtMC43OTY4NzUsLTEuNTYyNSAtMS43ODEyNSwtMS41NjI1IC0wLjk2ODc1LDAgLTEuNTkzNzUsMC43MTg3NSAtMS41OTM3NSwxLjQzNzUgMCwwLjM5MDYyNSAwLjMxMjUsMC40Mzc1IDAuNDIxODc1LDAuNDM3NSAwLjE3MTg3NSwwIDAuNDIxODc1LC0wLjEwOTM3NSAwLjQyMTg3NSwtMC40MjE4NzUgMCwtMC40MDYyNSAtMC40MDYyNSwtMC40MDYyNSAtMC41LC0wLjQwNjI1IEMgMSwtNC44NDM3NSAxLjUzMTI1LC01LjAzMTI1IDEuOTIxODc1LC01LjAzMTI1IGMgMC43MzQzNzUsMCAxLjEyNSwwLjYyNSAxLjEyNSwxLjI5Njg3NSAwLDAuODI4MTI1IC0wLjU3ODEyNSwxLjQzNzUgLTEuNTMxMjUsMi4zOTA2MjUgbCAtMSwxLjA0Njg3NSBDIDAuNDIxODc1LC0wLjIxODc1IDAuNDIxODc1LC0wLjIwMzEyNSAwLjQyMTg3NSwwIEggMy41NjI1IGwgMC4yMzQzNzUsLTEuNDIxODc1IGggLTAuMjUgQyAzLjUzMTI1LC0xLjI2NTYyNSAzLjQ2ODc1LC0wLjg3NSAzLjM3NSwtMC43MTg3NSBjIC0wLjA0Njg3NSwwLjA2MjUgLTAuNjU2MjUsMC4wNjI1IC0wLjc4MTI1LDAuMDYyNSBIIDEuMTcxODc1IFogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgzNSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDItMyI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAzLjQ2ODc1LC0xLjgxMjUgSCA1LjgxMjUgYyAwLjEwOTM3NSwwIDAuMjk2ODc1LDAgMC4yOTY4NzUsLTAuMTcxODc1IDAsLTAuMTg3NSAtMC4xODc1LC0wLjE4NzUgLTAuMjk2ODc1LC0wLjE4NzUgSCAzLjQ2ODc1IFYgLTQuNTMxMjUgYyAwLC0wLjEwOTM3NSAwLC0wLjI4MTI1IC0wLjE3MTg3NSwtMC4yODEyNSAtMC4xODc1LDAgLTAuMTg3NSwwLjE3MTg3NSAtMC4xODc1LDAuMjgxMjUgdiAyLjM1OTM3NSBIIDAuNzUgYyAtMC4xMDkzNzUsMCAtMC4yODEyNSwwIC0wLjI4MTI1LDAuMTg3NSAwLDAuMTcxODc1IDAuMTcxODc1LDAuMTcxODc1IDAuMjgxMjUsMC4xNzE4NzUgaCAyLjM1OTM3NSB2IDIuMzU5Mzc1IGMgMCwwLjEwOTM3NSAwLDAuMjgxMjUgMC4xODc1LDAuMjgxMjUgMC4xNzE4NzUsMCAwLjE3MTg3NSwtMC4xNzE4NzUgMC4xNzE4NzUsLTAuMjgxMjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDM4IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMy0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSIiCiAgICAgICAgICAgaWQ9InBhdGg0MSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDMtMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAzLjYwOTM3NSwtNC44MjgxMjUgQyAzLjY3MTg3NSwtNS4xMDkzNzUgMy42ODc1LC01LjEyNSA0LjAxNTYyNSwtNS4xMjUgaCAwLjU5Mzc1IGMgMC44MjgxMjUsMCAwLjkyMTg3NSwwLjI2NTYyNSAwLjkyMTg3NSwwLjY1NjI1IDAsMC4yMDMxMjUgLTAuMDQ2ODc1LDAuNTQ2ODc1IC0wLjA0Njg3NSwwLjU5Mzc1IC0wLjAxNTYyNSwwLjA3ODEyNSAtMC4wMzEyNSwwLjE1NjI1IC0wLjAzMTI1LDAuMTcxODc1IDAsMC4wOTM3NSAwLjA3ODEyNSwwLjEyNSAwLjEyNSwwLjEyNSAwLjA5Mzc1LDAgMC4xMjUsLTAuMDQ2ODc1IDAuMTQwNjI1LC0wLjIwMzEyNSBsIDAuMjE4NzUsLTEuNSBjIDAsLTAuMTA5Mzc1IC0wLjA5Mzc1LC0wLjEwOTM3NSAtMC4yMzQzNzUsLTAuMTA5Mzc1IEggMSBjIC0wLjE4NzUsMCAtMC4yMTg3NSwwIC0wLjI2NTYyNSwwLjE3MTg3NSBMIDAuMjUsLTMuODQzNzUgYyAtMC4wMTU2MjUsMC4wNDY4NzUgLTAuMDQ2ODc1LDAuMTA5Mzc1IC0wLjA0Njg3NSwwLjE1NjI1IDAsMC4wNjI1IDAuMDYyNSwwLjEwOTM3NSAwLjEyNSwwLjEwOTM3NSAwLjA5Mzc1LDAgMC4xMDkzNzUsLTAuMDQ2ODc1IDAuMTU2MjUsLTAuMTcxODc1IEMgMC45Mzc1LC01LjAzMTI1IDEuMTU2MjUsLTUuMTI1IDIuMzc1LC01LjEyNSBoIDAuMzEyNSBjIDAuMjM0Mzc1LDAgMC4yNSwwLjAxNTYyNSAwLjI1LDAuMDc4MTI1IDAsMC4wMTU2MjUgLTAuMDMxMjUsMC4xNzE4NzUgLTAuMDQ2ODc1LDAuMjAzMTI1IGwgLTEuMDQ2ODc1LDQuMTg3NSBjIC0wLjA3ODEyNSwwLjMxMjUgLTAuMDkzNzUsMC4zOTA2MjUgLTAuOTIxODc1LDAuMzkwNjI1IC0wLjI2NTYyNSwwIC0wLjM0Mzc1LDAgLTAuMzQzNzUsMC4xNTYyNSAwLDAgMCwwLjEwOTM3NSAwLjE0MDYyNSwwLjEwOTM3NSAwLjIxODc1LDAgMC43NjU2MjUsLTAuMDMxMjUgMC45ODQzNzUsLTAuMDMxMjUgSCAyLjM3NSBjIDAuMjE4NzUsMCAwLjc4MTI1LDAuMDMxMjUgMSwwLjAzMTI1IDAuMDYyNSwwIDAuMTg3NSwwIDAuMTg3NSwtMC4xNTYyNSAwLC0wLjEwOTM3NSAtMC4wOTM3NSwtMC4xMDkzNzUgLTAuMjk2ODc1LC0wLjEwOTM3NSAtMC4yMDMxMjUsMCAtMC4yNjU2MjUsMCAtMC40Njg3NSwtMC4wMTU2MjUgLTAuMjUsLTAuMDE1NjI1IC0wLjI4MTI1LC0wLjA0Njg3NSAtMC4yODEyNSwtMC4xNTYyNSAwLC0wLjAzMTI1IDAsLTAuMDYyNSAwLjAzMTI1LC0wLjE0MDYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNDQiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgzLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gNS4zNDM3NSwtNS4zOTA2MjUgYyAwLjAxNTYyNSwtMC4wMzEyNSAwLjAzMTI1LC0wLjA3ODEyNSAwLjAzMTI1LC0wLjEyNSAwLC0wLjA0Njg3NSAtMC4wNDY4NzUsLTAuMDkzNzUgLTAuMTA5Mzc1LC0wLjA5Mzc1IC0wLjA0Njg3NSwwIC0wLjA2MjUsMC4wMTU2MjUgLTAuMTU2MjUsMC4xMDkzNzUgQyA1LjAxNTYyNSwtNS4zOTA2MjUgNC44MTI1LC01LjE0MDYyNSA0LjcxODc1LC01LjA0Njg3NSA0LjQyMTg3NSwtNS41IDMuOTA2MjUsLTUuNjA5Mzc1IDMuNSwtNS42MDkzNzUgYyAtMS4wOTM3NSwwIC0yLjA0Njg3NSwwLjkzNzUgLTIuMDQ2ODc1LDEuODQzNzUgMCwwLjQ1MzEyNSAwLjI1LDAuNzM0Mzc1IDAuMjgxMjUsMC43ODEyNSAwLjI2NTYyNSwwLjI4MTI1IDAuNSwwLjM0Mzc1IDEuMDc4MTI1LDAuNDg0Mzc1IDAuMjY1NjI1LDAuMDYyNSAwLjI4MTI1LDAuMDYyNSAwLjUxNTYyNSwwLjEyNSAwLjIzNDM3NSwwLjA2MjUgMC43NSwwLjE4NzUgMC43NSwwLjg0Mzc1IDAsMC42ODc1IC0wLjY4NzUsMS40Mzc1IC0xLjUzMTI1LDEuNDM3NSAtMC41MTU2MjUsMCAtMS40Njg3NSwtMC4xNTYyNSAtMS40Njg3NSwtMS4xNTYyNSAwLC0wLjAxNTYyNSAwLC0wLjE4NzUgMC4wNDY4NzUsLTAuMzc1IGwgMC4wMTU2MjUsLTAuMDc4MTI1IGMgMCwtMC4wOTM3NSAtMC4wOTM3NSwtMC4xMDkzNzUgLTAuMTI1LC0wLjEwOTM3NSAtMC4wOTM3NSwwIC0wLjEwOTM3NSwwLjAzMTI1IC0wLjE0MDYyNSwwLjIxODc1IGwgLTAuMzI4MTI1LDEuMjk2ODc1IGMgLTAuMDMxMjUsMC4xMjUgLTAuMDkzNzUsMC4zNDM3NSAtMC4wOTM3NSwwLjM1OTM3NSAwLDAuMDYyNSAwLjA0Njg3NSwwLjEwOTM3NSAwLjEwOTM3NSwwLjEwOTM3NSAwLjA0Njg3NSwwIDAuMDYyNSwtMC4wMTU2MjUgMC4xNDA2MjUsLTAuMTA5Mzc1IEwgMS4wOTM3NSwtMC4zOTA2MjUgYyAwLjE4NzUsMC4yMzQzNzUgMC42NDA2MjUsMC41NjI1IDEuNDM3NSwwLjU2MjUgMS4xNTYyNSwwIDIuMTA5Mzc1LC0xLjA0Njg3NSAyLjEwOTM3NSwtMiAwLC0wLjM3NSAtMC4xMjUsLTAuNjU2MjUgLTAuMzQzNzUsLTAuODc1IEMgNC4wNjI1LC0yLjk2ODc1IDMuNzk2ODc1LC0zLjAzMTI1IDMuNDIxODc1LC0zLjEyNSAzLjIwMzEyNSwtMy4xODc1IDIuODkwNjI1LC0zLjI2NTYyNSAyLjcwMzEyNSwtMy4zMTI1IDIuNDY4NzUsLTMuMzU5Mzc1IDIuMDE1NjI1LC0zLjUxNTYyNSAyLjAxNTYyNSwtNC4wNzgxMjUgMi4wMTU2MjUsLTQuNzAzMTI1IDIuNjg3NSwtNS4zNzUgMy41LC01LjM3NSBjIDAuNzE4NzUsMCAxLjIwMzEyNSwwLjM3NSAxLjIwMzEyNSwxLjIzNDM3NSAwLDAuMjAzMTI1IC0wLjAzMTI1LDAuMzU5Mzc1IC0wLjAzMTI1LDAuMzkwNjI1IDAsMC4wOTM3NSAwLjA3ODEyNSwwLjEwOTM3NSAwLjE0MDYyNSwwLjEwOTM3NSAwLjA5Mzc1LDAgMC4wOTM3NSwtMC4wMzEyNSAwLjEyNSwtMC4xNTYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNDciIC8+CiAgICAgIDwvc3ltYm9sPgogICAgPC9nPgogIDwvZGVmcz4KICA8ZwogICAgIGlkPSJnMTQ2OSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTIuOTk5OTMyLC03MS45OTk5MzUpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojZWVlNmQ0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDMyMC4xNzE4NywxODguNjE3MTkgaCAzNC4wMTU2MyB2IC0xNy4wMDc4MiBoIC0zNC4wMTU2MyB6IG0gMCwwIgogICAgICAgaWQ9InBhdGg1NiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMSIKICAgICAgIHg9IjMyNi40Mjg5OSIKICAgICAgIHk9IjE4NC4wMDMwMSIKICAgICAgIGlkPSJ1c2U1OCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMiIKICAgICAgIHg9IjMzMy4xOTY5OSIKICAgICAgIHk9IjE4NC4wMDMwMSIKICAgICAgIGlkPSJ1c2U2MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMyIKICAgICAgIHg9IjM0Mi4zNTMiCiAgICAgICB5PSIxODQuMDAzMDEiCiAgICAgICBpZD0idXNlNjIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSA5My4zOTg0MzcsMTQ2LjA5NzY2IEggMTI3LjQxNDA2IFYgMTI5LjA4OTg0IEggOTMuMzk4NDM3IFogbSAwLDAiCiAgICAgICBpZD0icGF0aDY2IiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iMTA0LjI0MyIKICAgICAgIHk9IjEzOS4zNjA5OSIKICAgICAgIGlkPSJ1c2U2OCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMSIKICAgICAgIHg9IjExMS44MzgiCiAgICAgICB5PSIxNDEuMTYxIgogICAgICAgaWQ9InVzZTcyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNlZWU2ZDQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gOTMuMzk4NDM3LDE4OC42MTcxOSBIIDEyNy40MTQwNiBWIDE3MS42MDkzNyBIIDkzLjM5ODQzNyBaIG0gMCwwIgogICAgICAgaWQ9InBhdGg3NiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMiIKICAgICAgIHg9IjEwNC4wODYiCiAgICAgICB5PSIxODEuODgyIgogICAgICAgaWQ9InVzZTc4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMi0xIgogICAgICAgeD0iMTExLjk5NSIKICAgICAgIHk9IjE4My42ODIwMSIKICAgICAgIGlkPSJ1c2U4MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDExMC40MDYyNSwxNzEuMjEwOTQgdiAtMjIuMTI1IgogICAgICAgaWQ9InBhdGg4NiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAxMTAuNDA2MjUsMTQ2LjQ5NjA5IC0yLjA3MDMxLDQuMTQ0NTMgMi4wNzAzMSwtMS41NTQ2OCAyLjA3NDIyLDEuNTU0NjgiCiAgICAgICBpZD0icGF0aDg4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTUwLjA5Mzc1LDE0Ni4wOTc2NiBoIDM0LjAxNTYyIHYgLTE3LjAwNzgyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDkwIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iMTYwLjkzNyIKICAgICAgIHk9IjEzOS4zNjA5OSIKICAgICAgIGlkPSJ1c2U5MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMiIKICAgICAgIHg9IjE2OC41MzIiCiAgICAgICB5PSIxNDEuMTYxIgogICAgICAgaWQ9InVzZTk2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNlZWU2ZDQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTUwLjA5Mzc1LDE4OC42MTcxOSBoIDM0LjAxNTYyIHYgLTE3LjAwNzgyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDEwMCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMiIKICAgICAgIHg9IjE2MC43OCIKICAgICAgIHk9IjE4MS44ODIiCiAgICAgICBpZD0idXNlMTAyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMi0yIgogICAgICAgeD0iMTY4LjY4OSIKICAgICAgIHk9IjE4My42ODIwMSIKICAgICAgIGlkPSJ1c2UxMDYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAxNjcuMTAxNTYsMTcxLjIxMDk0IHYgLTIyLjEyNSIKICAgICAgIGlkPSJwYXRoMTEwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDE2Ny4xMDE1NiwxNDYuNDk2MDkgLTIuMDc0MjIsNC4xNDQ1MyAyLjA3NDIyLC0xLjU1NDY4IDIuMDcwMzEsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMTEyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTI3LjgxMjUsMTM3LjU5Mzc1IGggMTkuMjg5MDYiCiAgICAgICBpZD0icGF0aDExNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAxNDkuNjk1MzEsMTM3LjU5Mzc1IC00LjE0NDUzLC0yLjA3MDMxIDEuNTUwNzgsMi4wNzAzMSAtMS41NTA3OCwyLjA3NDIyIgogICAgICAgaWQ9InBhdGgxMTYiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSIyMTkuNjU0MDEiCiAgICAgICB5PSIxMzguMDg3MDEiCiAgICAgICBpZD0idXNlMTE4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC00IgogICAgICAgeD0iMjIyLjQxNCIKICAgICAgIHk9IjEzOC4wODcwMSIKICAgICAgIGlkPSJ1c2UxMjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSIyMjUuMTc0IgogICAgICAgeT0iMTM4LjA4NzAxIgogICAgICAgaWQ9InVzZTEyMiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNCIKICAgICAgIHg9IjIxOS42NTQwMSIKICAgICAgIHk9IjE4MC42MDY5OSIKICAgICAgIGlkPSJ1c2UxMjYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSIyMjIuNDE0IgogICAgICAgeT0iMTgwLjYwNjk5IgogICAgICAgaWQ9InVzZTEyOCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNCIKICAgICAgIHg9IjIyNS4xNzQiCiAgICAgICB5PSIxODAuNjA2OTkiCiAgICAgICBpZD0idXNlMTMwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTg0LjUwNzgxLDEzNy41OTM3NSBoIDE5LjI4OTA2IgogICAgICAgaWQ9InBhdGgxMzQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjA2LjM4NjcyLDEzNy41OTM3NSAtNC4xNDQ1MywtMi4wNzAzMSAxLjU1NDY4LDIuMDcwMzEgLTEuNTU0NjgsMi4wNzQyMiIKICAgICAgIGlkPSJwYXRoMTM2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjYzLjQ4MDQ3LDE0Ni4wOTc2NiBoIDM0LjAxNTYyIHYgLTE3LjAwNzgyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDEzOCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIKICAgICAgIHg9IjI3My4zODgiCiAgICAgICB5PSIxMzkuMzYwOTkiCiAgICAgICBpZD0idXNlMTQwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0xIgogICAgICAgeD0iMjgwLjk4MyIKICAgICAgIHk9IjE0MS4xNjEiCiAgICAgICBpZD0idXNlMTQ0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNlZWU2ZDQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjYzLjQ4MDQ3LDE4OC42MTcxOSBoIDM0LjAxNTYyIHYgLTE3LjAwNzgyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDE0OCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMiIKICAgICAgIHg9IjI3My4yMzA5OSIKICAgICAgIHk9IjE4MS44ODIiCiAgICAgICBpZD0idXNlMTUwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0xIgogICAgICAgeD0iMjgxLjE0MDAxIgogICAgICAgeT0iMTgzLjY4MjAxIgogICAgICAgaWQ9InVzZTE1NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDI4MC40ODgyOCwxNzEuMjEwOTQgdiAtMjIuMTI1IgogICAgICAgaWQ9InBhdGgxNTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjgwLjQ4ODI4LDE0Ni40OTYwOSAtMi4wNzQyMiw0LjE0NDUzIDIuMDc0MjIsLTEuNTU0NjggMi4wNzAzMSwxLjU1NDY4IgogICAgICAgaWQ9InBhdGgxNjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyNDEuMTk5MjIsMTM3LjU5Mzc1IGggMTkuMjkyOTciCiAgICAgICBpZD0icGF0aDE2MiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAyNjMuMDgyMDMsMTM3LjU5Mzc1IC00LjE0NDUzLC0yLjA3MDMxIDEuNTU0NjksMi4wNzAzMSAtMS41NTQ2OSwyLjA3NDIyIgogICAgICAgaWQ9InBhdGgxNjQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMjAuMTcxODcsMTQ2LjA5NzY2IGggMzQuMDE1NjMgdiAtMTcuMDA3ODIgaCAtMzQuMDE1NjMgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTY2IiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iMzI0LjY3MDk5IgogICAgICAgeT0iMTM4Ljk0NiIKICAgICAgIGlkPSJ1c2UxNjgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgzLTEiCiAgICAgICB4PSIzMzIuMjY1OTkiCiAgICAgICB5PSIxNDAuNzQ2IgogICAgICAgaWQ9InVzZTE3MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMyIKICAgICAgIHg9IjMzOC4zNzIwMSIKICAgICAgIHk9IjE0MC43NDYiCiAgICAgICBpZD0idXNlMTc2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMi0xIgogICAgICAgeD0iMzQ0Ljk1NTI5IgogICAgICAgeT0iMTQwLjc0NiIKICAgICAgIGlkPSJ1c2UxNzgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6I2VlZTZkNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSAzMjAuMTcxODcsMTAzLjU3ODEzIEggMzU0LjE4NzUgViA4Ni41NzAzMTIgaCAtMzQuMDE1NjMgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTgyIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0zIgogICAgICAgeD0iMzMxLjI3MzAxIgogICAgICAgeT0iOTYuNTc0OTk3IgogICAgICAgaWQ9InVzZTE4NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMSIKICAgICAgIHg9IjMzOC4zNTY5OSIKICAgICAgIHk9Ijk4LjM3NSIKICAgICAgIGlkPSJ1c2UxODgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMzcuMTc5NjksMTI4LjY5MTQxIHYgLTIyLjEyNSIKICAgICAgIGlkPSJwYXRoMTkyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDMzNy4xNzk2OSwxMDMuOTc2NTYgLTIuMDcwMzIsNC4xNDQ1MyAyLjA3MDMyLC0xLjU1NDY4IDIuMDc0MjIsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMTk0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjk3Ljg5NDUzLDEzNy41OTM3NSBoIDE5LjI4OTA2IgogICAgICAgaWQ9InBhdGgxOTYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMzE5Ljc3MzQ0LDEzNy41OTM3NSAtNC4xNDQ1MywtMi4wNzAzMSAxLjU1NDY4LDIuMDcwMzEgLTEuNTU0NjgsMi4wNzQyMiIKICAgICAgIGlkPSJwYXRoMTk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzc2Ljg2NzE5LDE0Ni4wOTc2NiBoIDM0LjAxNTYyIHYgLTE3LjAwNzgyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDIwMCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIKICAgICAgIHg9IjM4MS4zNjQ5OSIKICAgICAgIHk9IjEzOC45NDYiCiAgICAgICBpZD0idXNlMjAyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0xIgogICAgICAgeD0iMzg4Ljk1OTk5IgogICAgICAgeT0iMTQwLjc0NiIKICAgICAgIGlkPSJ1c2UyMDYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgyLTMiCiAgICAgICB4PSIzOTUuMDY2MDEiCiAgICAgICB5PSIxNDAuNzQ2IgogICAgICAgaWQ9InVzZTIxMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMiIKICAgICAgIHg9IjQwMS42NDkyOSIKICAgICAgIHk9IjE0MC43NDYiCiAgICAgICBpZD0idXNlMjEyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNlZWU2ZDQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzc2Ljg2NzE5LDEwMy41NzgxMyBoIDM0LjAxNTYyIFYgODYuNTcwMzEyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDIxNiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMyIKICAgICAgIHg9IjM4Ny45NjcwMSIKICAgICAgIHk9Ijk2LjU3NDk5NyIKICAgICAgIGlkPSJ1c2UyMTgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgyLTIiCiAgICAgICB4PSIzOTUuMDUwOTkiCiAgICAgICB5PSI5OC4zNzUiCiAgICAgICBpZD0idXNlMjIyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzkzLjg3NSwxMjguNjkxNDEgdiAtMjIuMTI1IgogICAgICAgaWQ9InBhdGgyMjYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMzkzLjg3NSwxMDMuOTc2NTYgLTIuMDc0MjIsNC4xNDQ1MyAyLjA3NDIyLC0xLjU1NDY4IDIuMDcwMzEsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMjI4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzU0LjU4NTk0LDEzNy41OTM3NSBoIDE5LjI5Mjk3IgogICAgICAgaWQ9InBhdGgyMzAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMzc2LjQ2ODc1LDEzNy41OTM3NSAtNC4xNDQ1MywtMi4wNzAzMSAxLjU1NDY5LDIuMDcwMzEgLTEuNTU0NjksMi4wNzQyMiIKICAgICAgIGlkPSJwYXRoMjMyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheToyLjk4ODgzLCAyLjk4ODgzO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDMzNy4xNzk2OSw4Ni4xNzE4NzUgViA3Mi4zOTg0NCBoIDI4LjM0NzY1IHYgODcuODc1IEggMzkzLjg3NSB2IC0xMS4xODc1IgogICAgICAgaWQ9InBhdGgyMzQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMzkzLjg3NSwxNDYuNDk2MDkgLTIuMDc0MjIsNC4xNDQ1MyAyLjA3NDIyLC0xLjU1NDY4IDIuMDcwMzEsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMjM2IiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC00IgogICAgICAgeD0iNDQ2LjQyODAxIgogICAgICAgeT0iMTM4LjA4NzAxIgogICAgICAgaWQ9InVzZTIzOCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNCIKICAgICAgIHg9IjQ0OS4xODc5OSIKICAgICAgIHk9IjEzOC4wODcwMSIKICAgICAgIGlkPSJ1c2UyNDAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSI0NTEuOTQ4IgogICAgICAgeT0iMTM4LjA4NzAxIgogICAgICAgaWQ9InVzZTI0MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNCIKICAgICAgIHg9IjQ0Ni40MjgwMSIKICAgICAgIHk9Ijk1LjU2NzAwMSIKICAgICAgIGlkPSJ1c2UyNDYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSI0NDkuMTg3OTkiCiAgICAgICB5PSI5NS41NjcwMDEiCiAgICAgICBpZD0idXNlMjQ4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC00IgogICAgICAgeD0iNDUxLjk0OCIKICAgICAgIHk9Ijk1LjU2NzAwMSIKICAgICAgIGlkPSJ1c2UyNTAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0MTEuMjgxMjUsMTM3LjU5Mzc1IGggMTkuMjg5MDYiCiAgICAgICBpZD0icGF0aDI1NCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSA0MzMuMTYwMTYsMTM3LjU5Mzc1IC00LjE0NDU0LC0yLjA3MDMxIDEuNTU0NjksMi4wNzAzMSAtMS41NTQ2OSwyLjA3NDIyIgogICAgICAgaWQ9InBhdGgyNTYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5OjIuOTg4ODMsIDIuOTg4ODM7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gMzkzLjg3NSw4Ni4xNzE4NzUgViA3Mi4zOTg0NCBoIDI4LjM0NzY2IHYgODcuODc1IGggMjguMzQzNzUgdiAtMTEuMTg3NSIKICAgICAgIGlkPSJwYXRoMjU4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQ1MC41NjY0MSwxNDYuNDk2MDkgLTIuMDcwMzIsNC4xNDQ1MyAyLjA3MDMyLC0xLjU1NDY4IDIuMDc0MjEsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMjYwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDkwLjI1MzkxLDE0Ni4wOTc2NiBoIDM0LjAxNTYyIHYgLTE3LjAwNzgyIGggLTM0LjAxNTYyIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDI2MiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIKICAgICAgIHg9IjQ5NC4wNzEwMSIKICAgICAgIHk9IjEzOC45NDYiCiAgICAgICBpZD0idXNlMjY0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0xIgogICAgICAgeD0iNTAxLjY2NTk5IgogICAgICAgeT0iMTQwLjc0NiIKICAgICAgIGlkPSJ1c2UyNjgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgyLTMiCiAgICAgICB4PSI1MDcuNzcyIgogICAgICAgeT0iMTQwLjc0NiIKICAgICAgIGlkPSJ1c2UyNzIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgzLTIiCiAgICAgICB4PSI1MTQuMzU5MDEiCiAgICAgICB5PSIxNDAuNzQ2IgogICAgICAgaWQ9InVzZTI3NiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojZWVlNmQ0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQ5MC4yNTM5MSwxMDMuNTc4MTMgaCAzNC4wMTU2MiBWIDg2LjU3MDMxMiBoIC0zNC4wMTU2MiB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgyODAiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgxLTMiCiAgICAgICB4PSI1MDAuNjczIgogICAgICAgeT0iOTYuNTc0OTk3IgogICAgICAgaWQ9InVzZTI4MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDMtMiIKICAgICAgIHg9IjUwNy43NTY5OSIKICAgICAgIHk9Ijk4LjM3NSIKICAgICAgIGlkPSJ1c2UyODYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA1MDcuMjYxNzIsMTI4LjY5MTQxIHYgLTIyLjEyNSIKICAgICAgIGlkPSJwYXRoMjkwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDUwNy4yNjE3MiwxMDMuOTc2NTYgLTIuMDcwMzEsNC4xNDQ1MyAyLjA3MDMxLC0xLjU1NDY4IDIuMDc0MjIsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMjkyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDY3Ljk3NjU2LDEzNy41OTM3NSBoIDE5LjI4OTA2IgogICAgICAgaWQ9InBhdGgyOTQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gNDg5Ljg1NTQ3LDEzNy41OTM3NSAtNC4xNDQ1MywtMi4wNzAzMSAxLjU1NDY4LDIuMDcwMzEgLTEuNTU0NjgsMi4wNzQyMiIKICAgICAgIGlkPSJwYXRoMjk2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheToyLjk4ODgzLCAyLjk4ODgzO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDQ1MC41NjY0MSw4Ni4xNzE4NzUgViA3Mi4zOTg0NCBoIDI4LjM0NzY1IHYgODcuODc1IGggMjguMzQ3NjYgdiAtMTEuMTg3NSIKICAgICAgIGlkPSJwYXRoMjk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDUwNy4yNjE3MiwxNDYuNDk2MDkgLTIuMDcwMzEsNC4xNDQ1MyAyLjA3MDMxLC0xLjU1NDY4IDIuMDc0MjIsMS41NTQ2OCIKICAgICAgIGlkPSJwYXRoMzAwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzM3LjE3OTY5LDE3MS4yMTA5NCB2IC0yMi4xMjUiCiAgICAgICBpZD0icGF0aDMwMiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAzMzcuMTc5NjksMTQ2LjQ5NjA5IC0yLjA3MDMyLDQuMTQ0NTMgMi4wNzAzMiwtMS41NTQ2OCAyLjA3NDIyLDEuNTU0NjgiCiAgICAgICBpZD0icGF0aDMwNCIgLz4KICA8L2c+Cjwvc3ZnPgo=" class="width80 center top5 bottom5">
<p>编码器：表示学习</p>
<ul>
<li>网格型数据，可采用卷积神经网络</li>
<li>序列型数据，可采用循环神经网络</li>
</ul>
<br>
<p>对于一般的图数据，编码器该如何设计？</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="47" class="slide " data-line="47" data-h="1" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>编码器设计</h5></div></div>
<p>输入：<span class="mathjax-exps">$\Gcal = (\Vcal, \Ecal)$</span>，<span class="mathjax-exps">$\Xv = [\xv_1, \ldots, \xv_{|\Vcal|}] \in \Rbb^{d \times |\Vcal|}$</span>，边的特征，整图的特征</p>
<br>
<p>一个 naïve 的做法是将邻接矩阵<span class="mathjax-exps">$\Av$</span>拉直成向量，后接一个全连接网络</p>
<p>

$$
\begin{align*}
    \zv_\Gcal = \mlp ([\Av]_{:,1} \oplus [\Av]_{:,2} \oplus \cdots \oplus [\Av]_{:,|\Vcal|})
\end{align*}
$$
</p>

<p>邻接矩阵人为给点指定了顺序，点和边自带的特征没有用起来</p>
<p>引入置换矩阵<span class="mathjax-exps">$\Pv$</span>，定义</p>
<ul>
<li>平移不变性：<span class="mathjax-exps">$f(\Pv \Av \Pv^\top) = f(\Av)$</span>，<span class="blue">标量值函数</span>对于点的标号顺序不敏感</li>
<li>平移等价性：<span class="mathjax-exps">$\fv (\Pv \Av \Pv^\top) = \Pv \fv (\Av)$</span>，<span class="blue">向量值函数</span>与点的标号顺序始终一致</li>
</ul>
<br>
<p>神经消息传递 (neural message passing) 框架：GNN 的统一表示</p>
<ul>
<li>点之间不断进行信息交互</li>
<li>信息通过神经网络进行更新</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="83" class="slide " data-line="83" data-h="2" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>消息传递框架</h5></div></div>
<p>记第<span class="mathjax-exps">$k$</span>轮点<span class="mathjax-exps">$u$</span>的隐藏状态 (嵌入表示) 为<span class="mathjax-exps">$\hv_u^\sup{k}$</span>，GNN 的消息传递形式化为</p>
<p>

$$
\begin{align*}
    \hv_u^\sup{0}   &amp; = \xv_u, ~ \forall u \in \Vcal                                                                                         \\
    \hv_u^\sup{k+1} &amp; = \update^\sup{k} \left( \hv_u^\sup{k}, \aggregate^\sup{k} ( \{ \hv_v^\sup{k} \mid \forall v \in \Ncal(u) \} ) \right) \\
                    &amp; = \update^\sup{k} \left( \hv_u^\sup{k}, \mv_{\Ncal(u)}^\sup{k} \right)                                                 \\
    \zv_u           &amp; = \hv_u^\sup{K}, ~ \forall u \in \Vcal
\end{align*}
$$
</p>

<ul>
<li><span class="mathjax-exps">$\update (\cdot)$</span>：用来更新当前点隐藏状态的可微函数</li>
<li><span class="mathjax-exps">$\aggregate (\cdot)$</span>：用来汇聚邻居信息的可微函数，其输入是一个集合 (平移等价性)</li>
<li><span class="mathjax-exps">$\mv_{\Ncal(u)}^\sup{k}$</span>：点<span class="mathjax-exps">$u$</span>的所有邻居的信息汇聚结果</li>
<li>如果点本身没有特征，可以用点层面的统计量作为特征</li>
<li>GNN 一层可视为一轮消息传递，<span class="mathjax-exps">$K$</span>层即编码了所有<span class="mathjax-exps">$K$</span>阶邻居的信息</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="110" class="slide " data-line="110" data-h="2" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>消息传递框架</h5></div></div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjQ4MC4zMDA5M3B0IgogICBoZWlnaHQ9IjIxMS4wMDQwNHB0IgogICB2aWV3Qm94PSIwIDAgNDgwLjMwMDkzIDIxMS4wMDQwNCIKICAgdmVyc2lvbj0iMS4yIgogICBpZD0ic3ZnMjMzIgogICBzb2RpcG9kaTpkb2NuYW1lPSJnbm4uc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCwgY3VzdG9tKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXcyMzUiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuNjgwODcxMjEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0yMDMuNDE1ODYiCiAgICAgaW5rc2NhcGU6Y3k9IjQzMS43OTk3MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM4NDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMjM0NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iNTQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcyMzMiIC8+CiAgPGRlZnMKICAgICBpZD0iZGVmczQwIj4KICAgIDxnCiAgICAgICBpZD0iZzM4Ij4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDAuNzUsMCB2IC03LjA5Mzc1IGggNiBWIDAgWiBNIDEuNSwtMC43NSBIIDYgViAtNi4zNDM3NSBIIDEuNSBaIG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMiIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAwLjQwNjI1LDAuMDc4MTI1IGMgLTAuMTM2NzE5LDAgLTAuMjQ2MDk0LC0wLjAyMzQzNzUgLTAuMzI4MTI1LC0wLjA2MjUgQyAwLjAwMzkwNjI1LC0wLjAxNTYyNSAtMC4wMzEyNSwtMC4wNjI1IC0wLjAzMTI1LC0wLjEyNSBjIDAsLTAuMDYyNSAwLjAzOTA2MjUsLTAuMTE3MTg4IDAuMTI1LC0wLjE3MTg3NSAwLjA4MjAzMSwtMC4wNjI1IDAuMjA3MDMxLC0wLjExNzE4NyAwLjM3NSwtMC4xNzE4NzUgMC4yNTc4MTIsLTAuMDcwMzEyIDAuNSwtMC4xODc1IDAuNzE4NzUsLTAuMzQzNzUgQyAxLjQwNjI1LC0wLjk3NjU2MiAxLjU5Mzc1LC0xLjI1IDEuNzUsLTEuNjI1IDIuMDMxMjUsLTIuMjU3ODEyIDIuMjg1MTU2LC0yLjg1OTM3NSAyLjUxNTYyNSwtMy40MjE4NzUgMi43NTM5MDYsLTMuOTg0Mzc1IDIuOTc2NTYyLC00LjUzMTI1IDMuMTg3NSwtNS4wNjI1IDMuNDA2MjUsLTUuNjAxNTYyIDMuNjI1LC02LjE2NDA2MiAzLjg0Mzc1LC02Ljc1IDQuMDcwMzEyLC03LjM0Mzc1IDQuMzEyNSwtNy45ODQzNzUgNC41NjI1LC04LjY3MTg3NSA0LjYxMzI4MSwtOC44MDQ2ODggNC42NTYyNSwtOC45NDE0MDYgNC42ODc1LC05LjA3ODEyNSA0LjcyNjU2MiwtOS4yMjI2NTYgNC43NTM5MDYsLTkuMzc4OTA2IDQuNzY1NjI1LC05LjU0Njg3NSA0Ljg1OTM3NSwtOS41NjY0MDYgNC45NDUzMTIsLTkuNTkzNzUgNS4wMzEyNSwtOS42MjUgNS4xMjUsLTkuNjU2MjUgNS4yMTg3NSwtOS43MDMxMjUgNS4zMTI1LC05Ljc2NTYyNSBjIDAuMDgyMDMxLC0wLjA2MjUgMC4xNDA2MjUsLTAuMTQ4NDM3IDAuMTcxODc1LC0wLjI2NTYyNSAwLjAzOTA2MywtMC4xMjUgMC4wNzgxMjUsLTAuMjA3MDMxIDAuMTA5Mzc1LC0wLjI1IDAuMDA3ODEsLTAuMDA3OCAwLjAxOTUzMSwtMC4wMTU2MyAwLjAzMTI1LC0wLjAxNTYzIDAuMDE5NTMxLDAgMC4wMzUxNTYsMC4wMTE3MiAwLjA0Njg3NSwwLjAzMTI1IDAuMDE5NTMxLDAuMDQyOTcgMC4wMzUxNTYsMC4wOTM3NSAwLjA0Njg3NSwwLjE1NjI1IDAuMDE5NTMxLDAuMDYyNSAwLjAzOTA2MiwwLjEyMTA5NCAwLjA2MjUsMC4xNzE4NzUgMC4yMzgyODEsMC43NjE3MTkgMC40ODgyODEsMS41MzkwNjIgMC43NSwyLjMyODEyNSAwLjI1NzgxMiwwLjc5Mjk2OSAwLjUwNzgxMiwxLjU1ODU5NCAwLjc1LDIuMjk2ODc1IDAuMjUsMC43MzA0NjkgMC40NzI2NTYsMS4zOTA2MjUgMC42NzE4NzUsMS45ODQzNzUgMC4yMDcwMzEsMC41ODU5MzcgMC4zNjcxODcsMS4wNTQ2ODcgMC40ODQzNzUsMS40MDYyNSAwLjE0NDUzMSwwLjQwNjI1IDAuMjk2ODc1LDAuNzEwOTM3IDAuNDUzMTI1LDAuOTA2MjUgMC4xNjQwNjMsMC4xOTkyMTkgMC4zMzIwMzEsMC4zMzk4NDQgMC41LDAuNDIxODc1IDAuMTc1NzgxLDAuMDc0MjE5IDAuMzYzMjgxLDAuMTMyODEyIDAuNTYyNSwwLjE3MTg3NSAwLjE3NTc4MSwwLjAzMTI1IDAuMzAwNzgxLDAuMDc4MTI1IDAuMzc1LDAuMTQwNjI1IDAuMDgyMDMsMC4wNjI1IDAuMTI1LDAuMTMyODEyIDAuMTI1LDAuMjAzMTI1IDAsMC4wNjI1IC0wLjA0Mjk3LDAuMTAxNTYyNSAtMC4xMjUsMC4xMjUgLTAuMDc0MjIsMC4wMTk1MzEyIC0wLjE3OTY4NywwLjAzMTI1IC0wLjMxMjUsMC4wMzEyNSAtMC4xMzY3MTksMCAtMC4zMjQyMTksLTAuMDExNzE4OCAtMC41NjI1LC0wLjAzMTI1IEMgOS4yMTA5MzgsMC4wMzUxNTYyIDguOTU3MDMxLDAuMDE5NTMxMiA4LjY4NzUsMCA4LjQxNDA2MiwtMC4wMDc4MTI1IDguMTY0MDYyLC0wLjAxNTYyNSA3LjkzNzUsLTAuMDE1NjI1IGMgLTAuMTg3NSwwIC0wLjM4NjcxOSwwIC0wLjU5Mzc1LDAgLTAuMTk5MjE5LDAgLTAuMzgyODEyLDAuMDA3ODEyNSAtMC41NDY4NzUsMC4wMTU2MjUgLTAuMTY3OTY5LDAgLTAuMzEyNSwwIC0wLjQzNzUsMCAtMC4xMjUsMCAtMC4yMzA0NjksLTAuMDE1NjI1IC0wLjMxMjUsLTAuMDQ2ODc1IC0wLjA4NTkzNywtMC4wMzEyNSAtMC4xMjUsLTAuMDc4MTI1IC0wLjEyNSwtMC4xNDA2MjUgMCwtMC4wNjI1IDAuMDQ2ODc1LC0wLjExNzE4OCAwLjE0MDYyNSwtMC4xNzE4NzUgMC4xMDE1NjIsLTAuMDUwNzgxIDAuMjIyNjU2LC0wLjA4NTkzNyAwLjM1OTM3NSwtMC4xMDkzNzUgMC4zMzIwMzEsLTAuMDUwNzgxIDAuNTY2NDA2LC0wLjEzMjgxMiAwLjcwMzEyNSwtMC4yNSAwLjEzMjgxMiwtMC4xMjUgMC4yMDMxMjUsLTAuMjY1NjI1IDAuMjAzMTI1LC0wLjQyMTg3NSAwLC0wLjE0NDUzMSAtMC4wMzEyNSwtMC4zNTkzNzUgLTAuMDkzNzUsLTAuNjQwNjI1IEMgNy4xNzE4NzUsLTIuMDcwMzEyIDcuMDkzNzUsLTIuMzc4OTA2IDcsLTIuNzAzMTI1IDYuOTE0MDYyLC0zLjAyMzQzOCA2LjgzMjAzMSwtMy4zMTI1IDYuNzUsLTMuNTYyNSA2LjcyNjU2MiwtMy42NDQ1MzEgNi42OTE0MDYsLTMuNjkxNDA2IDYuNjQwNjI1LC0zLjcwMzEyNSA2LjU4NTkzOCwtMy43MjI2NTYgNi40ODgyODEsLTMuNzM0Mzc1IDYuMzQzNzUsLTMuNzM0Mzc1IEggMy41MTU2MjUgYyAtMC4wNDI5NjksMCAtMC4wODk4NDQsMC4wMjM0MzcgLTAuMTQwNjI1LDAuMDYyNSAtMC4wNDI5NjksMC4wMzEyNSAtMC4wODU5MzgsMC4xMDE1NjMgLTAuMTI1LDAuMjAzMTI1IC0wLjAzMTI1LDAuMTA1NDY5IC0wLjA4NTkzOCwwLjI2NTYyNSAtMC4xNTYyNSwwLjQ4NDM3NSAtMC4wNjI1LDAuMjEwOTM3IC0wLjEzMjgxMiwwLjQzMzU5NCAtMC4yMDMxMjUsMC42NzE4NzUgLTAuMDYyNSwwLjI0MjE4OCAtMC4xMjEwOTQsMC40NjA5MzggLTAuMTcxODc1LDAuNjU2MjUgLTAuMDU0Njg4LDAuMTg3NSAtMC4wNzgxMjUsMC4zMDQ2ODggLTAuMDc4MTI1LDAuMzQzNzUgMCwwLjIzMDQ2OSAwLjA4MjAzMSwwLjQxNzk2OSAwLjI1LDAuNTYyNSAwLjE3NTc4MSwwLjEzNjcxOSAwLjM4MjgxMywwLjIzNDM3NSAwLjYyNSwwLjI5Njg3NSBDIDMuODM1OTM4LC0wLjM1OTM3NSA0LC0wLjI1NzgxMiA0LC0wLjE1NjI1IDQsLTAuMDkzNzUgMy45NTcwMzEsLTAuMDQ2ODc1IDMuODc1LC0wLjAxNTYyNSAzLjgwMDc4MSwwLjAwMzkwNjI1IDMuNjk1MzEyLDAuMDE1NjI1IDMuNTYyNSwwLjAxNTYyNSAzLjQzNzUsMC4wMTU2MjUgMy4yNSwwLjAwNzgxMjUgMywwIDIuNzUsLTAuMDA3ODEyNSAyLjQ4NDM3NSwtMC4wMTU2MjUgMi4yMDMxMjUsLTAuMDE1NjI1IDEuODY3MTg4LC0wLjAxNTYyNSAxLjU0Njg3NSwwIDEuMjM0Mzc1LDAuMDMxMjUgMC45Mjk2ODgsMC4wNjI1IDAuNjU2MjUsMC4wNzgxMjUgMC40MDYyNSwwLjA3ODEyNSBaIG0gMy41MTU2MjUsLTQuMzEyNSBoIDIuMzEyNSBjIDAuMTQ0NTMxLDAgMC4yMTg3NSwtMC4wMjM0MzcgMC4yMTg3NSwtMC4wNzgxMjUgMCwtMC4wMDc4MSAtMC4wMDc4MSwtMC4wMjM0MzggLTAuMDE1NjI1LC0wLjA0Njg3NSAwLC0wLjAzMTI1IC0wLjAwNzgxLC0wLjA2MjUgLTAuMDE1NjI1LC0wLjA5Mzc1IEwgNS4yNSwtOC4xMDkzNzUgQyA1LjE4NzUsLTguMjk2ODc1IDUuMTQwNjI1LC04LjM5MDYyNSA1LjEwOTM3NSwtOC4zOTA2MjUgNS4wODU5MzgsLTguMzkwNjI1IDUuMDUwNzgxLC04LjMwMDc4MSA1LC04LjEyNSBsIC0xLjM3NSwzLjY3MTg3NSBjIC0wLjAyMzQzOCwwLjA2MjUgLTAuMDMxMjUsMC4xMDU0NjkgLTAuMDMxMjUsMC4xMjUgMCwwLjA0Mjk2OSAwLjAyMzQzOCwwLjA3MDMxMyAwLjA3ODEyNSwwLjA3ODEyNSAwLjA2MjUsMC4wMTE3MTkgMC4xNDQ1MzEsMC4wMTU2MjUgMC4yNSwwLjAxNTYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtMiI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAyLjkyMTg3NSw0LjM0Mzc1IEMgMi4wNzgxMjUsNC4zNDM3NSAxLjQwNjI1LDQuMTc5Njg4IDAuOTA2MjUsMy44NTkzNzUgMC40MTQwNjIsMy41MzUxNTYgMC4xNzE4NzUsMy4wOTc2NTYgMC4xNzE4NzUsMi41NDY4NzUgMC4xNzE4NzUsMi4yODUxNTYgMC4yMDcwMzEsMi4wNjY0MDYgMC4yODEyNSwxLjg5MDYyNSAwLjM2MzI4MSwxLjcxMDkzOCAwLjQ4ODI4MSwxLjU1NDY4OCAwLjY1NjI1LDEuNDIxODc1IDAuODAwNzgxLDEuMzA0Njg4IDAuOTg4MjgxLDEuMTU2MjUgMS4yMTg3NSwwLjk2ODc1IDEuNDU3MDMxLDAuNzgxMjUgMS43MDMxMjUsMC41ODU5MzggMS45NTMxMjUsMC4zOTA2MjUgbCAwLjYyNSwwLjAzMTI1IGMgLTAuNDgwNDY5LDAuMzEyNSAtMC44MTI1LDAuNjAxNTYzIC0xLDAuODc1IC0wLjE4NzUsMC4yODEyNSAtMC4yODEyNSwwLjYyNSAtMC4yODEyNSwxLjAzMTI1IDAsMC4zOTQ1MzEgMC4xNzU3ODEsMC43MjY1NjMgMC41MzEyNSwxIEMgMi4xNzk2ODgsMy42MDkzNzUgMi42MTcxODgsMy43NSAzLjE0MDYyNSwzLjc1IDMuNzIyNjU2LDMuNzUgNC4xOTUzMTIsMy42MTMyODEgNC41NjI1LDMuMzQzNzUgNC44MTI1LDMuMTU2MjUgNS4wMDM5MDYsMi45MDYyNSA1LjE0MDYyNSwyLjU5Mzc1IDUuMjg1MTU2LDIuMjg5MDYyIDUuMzU5Mzc1LDEuOTcyNjU2IDUuMzU5Mzc1LDEuNjQwNjI1IDUuMzU5Mzc1LDEuNDIxODc1IDUuMjgxMjUsMS4yMzgyODEgNS4xMjUsMS4wOTM3NSA0Ljk2ODc1LDAuOTQ1MzEyIDQuNzIyNjU2LDAuODI4MTI1IDQuMzkwNjI1LDAuNzM0Mzc1IDQuMDY2NDA2LDAuNjQwNjI1IDMuNjQwNjI1LDAuNTgyMDMxIDMuMTA5Mzc1LDAuNTYyNSAyLjE2MDE1NiwwLjQ4ODI4MSAxLjUwMzkwNiwwLjM1OTM3NSAxLjE0MDYyNSwwLjE3MTg3NSAwLjc3MzQzOCwtMC4wMDM5MDYyNSAwLjU5Mzc1LC0wLjI4MTI1IDAuNTkzNzUsLTAuNjU2MjUgYyAwLC0wLjEwMTU2MiAwLjAyMzQzOCwtMC4xOTUzMTIgMC4wNzgxMjUsLTAuMjgxMjUgMC4wNjI1LC0wLjA4MjAzMSAwLjE0ODQzNywtMC4xNzU3ODEgMC4yNjU2MjUsLTAuMjgxMjUgMC4yMzgyODEsLTAuMTc1NzgxIDAuNDEwMTU2LC0wLjMwNDY4OCAwLjUxNTYyNSwtMC4zOTA2MjUgMC4xMTMyODEsLTAuMDgyMDMxIDAuMTk1MzEzLC0wLjE1NjI1IDAuMjUsLTAuMjE4NzUgMC4wNTA3ODEsLTAuMDYyNSAwLjEwMTU2MywtMC4xNDA2MjUgMC4xNTYyNSwtMC4yMzQzNzUgTCAyLjM3NSwtMS43OTY4NzUgYyAtMC4yMTg3NSwwLjA3NDIxOSAtMC40MDYyNSwwLjE3OTY4NyAtMC41NjI1LDAuMzEyNSAtMC4xNDg0MzgsMC4xMzY3MTkgLTAuMjE4NzUsMC4yNjE3MTkgLTAuMjE4NzUsMC4zNzUgMCwwLjEzNjcxOSAwLjA3MDMxMiwwLjI2MTcxOSAwLjIxODc1LDAuMzc1IDAuMTU2MjUsMC4xMDU0NjkgMC4zNzUsMC4xODc1IDAuNjU2MjUsMC4yNSAwLjI4OTA2MiwwLjA1NDY4NyAwLjY0ODQzOCwwLjA5Mzc1IDEuMDc4MTI1LDAuMTI1IDAuOTE0MDYzLDAuMDU0Njg3IDEuNTk3NjU2LDAuMjAzMTI1IDIuMDQ2ODc1LDAuNDUzMTI1IDAuNDQ1MzEyLDAuMjUgMC42NzE4NzUsMC42MDE1NjIgMC42NzE4NzUsMS4wNjI1IDAsMC4zODI4MTIgLTAuMTAxNTYzLDAuNzY1NjI1IC0wLjI5Njg3NSwxLjE0MDYyNSAtMC4xODc1LDAuMzc1IC0wLjQ0NTMxMiwwLjcxODc1IC0wLjc2NTYyNSwxLjAzMTI1IEMgNC44Nzg5MDYsMy42NDA2MjUgNC41MTk1MzEsMy44ODI4MTIgNC4xMjUsNC4wNjI1IDMuNzM4MjgxLDQuMjUgMy4zMzU5MzgsNC4zNDM3NSAyLjkyMTg3NSw0LjM0Mzc1IFogbSAwLjE4NzUsLTYuNDUzMTI1IGMgMC4zNzUsMCAwLjY4NzUsLTAuMTkxNDA2IDAuOTM3NSwtMC41NzgxMjUgMC4yNSwtMC4zODI4MTIgMC4zNzUsLTAuODYzMjgxIDAuMzc1LC0xLjQzNzUgMCwtMC4yODkwNjIgLTAuMDcwMzEzLC0wLjU2MjUgLTAuMjAzMTI1LC0wLjgxMjUgQyA0LjA4MjAzMSwtNS4xOTUzMTIgMy45MDYyNSwtNS40MDYyNSAzLjY4NzUsLTUuNTYyNSAzLjQ3NjU2MiwtNS43MTg3NSAzLjI1LC01Ljc5Njg3NSAzLC01Ljc5Njg3NSBjIC0wLjIzMDQ2OSwwIC0wLjQ0OTIxOSwwLjA4NTkzNyAtMC42NTYyNSwwLjI1IC0wLjE5OTIxOSwwLjE2Nzk2OSAtMC4zNTkzNzUsMC4zODI4MTMgLTAuNDg0Mzc1LDAuNjQwNjI1IC0wLjEyNSwwLjI2MTcxOSAtMC4xODc1LDAuNTQ2ODc1IC0wLjE4NzUsMC44NTkzNzUgMCwwLjM0Mzc1IDAuMDYyNSwwLjY2Nzk2OSAwLjE4NzUsMC45Njg3NSAwLjEzMjgxMywwLjI5Mjk2OSAwLjMxMjUsMC41MjczNDQgMC41MzEyNSwwLjcwMzEyNSAwLjIxODc1LDAuMTc5Njg4IDAuNDU3MDMxLDAuMjY1NjI1IDAuNzE4NzUsMC4yNjU2MjUgeiBtIC0wLjA5Mzc1LDAuNTE1NjI1IGMgLTAuNDA2MjUsMCAtMC43OTY4NzUsLTAuMTAxNTYyIC0xLjE3MTg3NSwtMC4zMTI1IEMgMS40NzY1NjIsLTIuMTEzMjgxIDEuMTc1NzgxLC0yLjM5MDYyNSAwLjkzNzUsLTIuNzM0Mzc1IDAuNjk1MzEyLC0zLjA3ODEyNSAwLjU3ODEyNSwtMy40NTcwMzEgMC41NzgxMjUsLTMuODc1IGMgMCwtMC40Njg3NSAwLjExNzE4NywtMC44Nzg5MDYgMC4zNTkzNzUsLTEuMjM0Mzc1IDAuMjUsLTAuMzUxNTYzIDAuNTcwMzEyLC0wLjYyODkwNiAwLjk2ODc1LC0wLjgyODEyNSAwLjQwNjI1LC0wLjE5NTMxMiAwLjgzMjAzMSwtMC4yOTY4NzUgMS4yODEyNSwtMC4yOTY4NzUgMC4yODkwNjIsMCAwLjU0Njg3NSwwLjAzOTA2MyAwLjc2NTYyNSwwLjEwOTM3NSAwLjIxODc1LDAuMDc0MjE5IDAuNDI5Njg3LDAuMTQwNjI1IDAuNjQwNjI1LDAuMjAzMTI1IDAuMjM4MjgxLDAuMDc0MjE5IDAuNDI1NzgxLDAuMTE3MTg3IDAuNTYyNSwwLjEyNSAwLjE0NDUzMSwwLjAxMTcxOSAwLjI4OTA2MiwwLjAxNTYyNSAwLjQzNzUsMC4wMTU2MjUgMC4xMjUsMCAwLjI3MzQzOCwtMC4wMDM5MSAwLjQ1MzEyNSwtMC4wMTU2MjUgMC4xNzU3ODEsLTAuMDA3ODEgMC4zMDA3ODEsLTAuMDE1NjI1IDAuMzc1LC0wLjAxNTYyNSAwLjEyNSwwIDAuMTg3NSwwLjA3NDIxOSAwLjE4NzUsMC4yMTg3NSAwLDAuMDkzNzUgLTAuMDQ2ODc1LDAuMTg3NSAtMC4xNDA2MjUsMC4yODEyNSAtMC4wNTQ2ODgsMC4wNTQ2ODggLTAuMDkzNzUsMC4wNzgxMjUgLTAuMTI1LDAuMDc4MTI1IEggNS45Mzc1IGMgLTAuMjczNDM4LDAgLTAuNDIxODc1LDAuMDQyOTY5IC0wLjQ1MzEyNSwwLjEyNSAtMC4wMTE3MTksMC4wMzEyNSAtMC4wMjM0MzcsMC4wODk4NDQgLTAuMDMxMjUsMC4xNzE4NzUgLTAuMDExNzE5LDAuMDc0MjE5IC0wLjAyMzQzNywwLjE1NjI1IC0wLjAzMTI1LDAuMjUgLTAuMDExNzE5LDAuMDg1OTM4IC0wLjAxNTYyNSwwLjE3MTg3NSAtMC4wMTU2MjUsMC4yNjU2MjUgMCwwLjUxMTcxOSAtMC4xMTcxODgsMC45ODA0NjkgLTAuMzQzNzUsMS40MDYyNSAtMC4yMTg3NSwwLjQyOTY4NyAtMC41MTE3MTksMC43NzM0MzcgLTAuODc1LDEuMDMxMjUgLTAuMzU1NDY5LDAuMjYxNzE5IC0wLjc0NjA5NCwwLjM5MDYyNSAtMS4xNzE4NzUsMC4zOTA2MjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDgiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgwLTMiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gMC43MzQzNzUsMC4wNDY4NzUgQyAwLjYyODkwNiwwLjA0Njg3NSAwLjU1MDc4MSwwLjAzMTI1IDAuNSwwIDAuNDU3MDMxLC0wLjAxOTUzMTIgMC40Mzc1LC0wLjA2MjUgMC40Mzc1LC0wLjEyNSBjIDAsLTAuMDcwMzEyIDAuMDIzNDM4LC0wLjExNzE4OCAwLjA3ODEyNSwtMC4xNDA2MjUgMC4wNjI1LC0wLjAzMTI1IDAuMTQ4NDM3LC0wLjA2MjUgMC4yNjU2MjUsLTAuMDkzNzUgMC4xODc1LC0wLjA1MDc4MSAwLjMyODEyNSwtMC4xMjUgMC40MjE4NzUsLTAuMjE4NzUgMC4wOTM3NSwtMC4wOTM3NSAwLjE0MDYyNSwtMC4yMTA5MzcgMC4xNDA2MjUsLTAuMzU5Mzc1IHYgLTMuMjE4NzUgYyAwLC0wLjI2OTUzMSAtMC4wNDI5NjksLTAuNTAzOTA2IC0wLjEyNSwtMC43MDMxMjUgQyAxLjE0NDUzMSwtNS4wNTQ2ODggMC45ODQzNzUsLTUuMTc5Njg4IDAuNzM0Mzc1LC01LjIzNDM3NSAwLjY5MTQwNiwtNS4yNDIxODggMC42NTYyNSwtNS4yNjk1MzEgMC42MjUsLTUuMzEyNSAwLjU5Mzc1LC01LjM1MTU2MiAwLjU3ODEyNSwtNS4zOTQ1MzEgMC41NzgxMjUsLTUuNDM3NSBjIDAsLTAuMDkzNzUgMC4wNDY4NzUsLTAuMTQ4NDM4IDAuMTQwNjI1LC0wLjE3MTg3NSAwLjI1NzgxMiwtMC4wODIwMzEgMC41MzEyNSwtMC4xOTUzMTMgMC44MTI1LC0wLjM0Mzc1IDAuMjg5MDYyLC0wLjE1NjI1IDAuNTE1NjI1LC0wLjI4NTE1NiAwLjY3MTg3NSwtMC4zOTA2MjUgMC4wNjI1LC0wLjAzOTA2MiAwLjEwOTM3NSwtMC4wNjY0MDYgMC4xNDA2MjUsLTAuMDc4MTI1IDAuMDM5MDYyLC0wLjAxOTUzMSAwLjA3MDMxMiwtMC4wMzEyNSAwLjA5Mzc1LC0wLjAzMTI1IDAuMDM5MDYyLDAgMC4wNjI1LDAuMDM5MDYzIDAuMDYyNSwwLjEwOTM3NSAwLDAuMDMxMjUgLTAuMDA3ODEsMC4xMDkzNzUgLTAuMDE1NjI1LDAuMjM0Mzc1IDAsMC4xMTcxODcgLTAuMDA3ODEsMC4yNTc4MTMgLTAuMDE1NjI1LDAuNDIxODc1IDAsMC4xNTYyNSAtMC4wMDc4MSwwLjMxMjUgLTAuMDE1NjI1LDAuNDY4NzUgMCwwLjAyMzQzOCAwLjAwNzgxLDAuMDMxMjUgMC4wMzEyNSwwLjAzMTI1IDAuMTY0MDYzLC0wLjE5NTMxMiAwLjM0Mzc1LC0wLjM2NzE4OCAwLjUzMTI1LC0wLjUxNTYyNSAwLjE5NTMxMywtMC4xNTYyNSAwLjM5ODQzNywtMC4yNzM0MzcgMC42MDkzNzUsLTAuMzU5Mzc1IDAuMjA3MDMxLC0wLjA5Mzc1IDAuNDA2MjUsLTAuMTQwNjI1IDAuNTkzNzUsLTAuMTQwNjI1IDAuMjA3MDMxLDAgMC4zNzg5MDYsMC4wNDY4NzUgMC41MTU2MjUsMC4xNDA2MjUgMC4xMzI4MTMsMC4wODU5MzggMC4yMDMxMjUsMC4xOTUzMTIgMC4yMDMxMjUsMC4zMjgxMjUgMCwwLjEwNTQ2OSAtMC4wMzEyNSwwLjIxODc1IC0wLjA5Mzc1LDAuMzQzNzUgLTAuMDU0Njg4LDAuMTE3MTg3IC0wLjEyNSwwLjIxODc1IC0wLjIxODc1LDAuMzEyNSAtMC4wODU5MzgsMC4wODU5MzcgLTAuMTc5Njg4LDAuMTI1IC0wLjI4MTI1LDAuMTI1IC0wLjA1NDY4OCwwIC0wLjExNzE4OCwtMC4wMDc4MSAtMC4xODc1LC0wLjAzMTI1IC0wLjA3NDIxOSwtMC4wMzEyNSAtMC4xNDg0MzgsLTAuMDYyNSAtMC4yMTg3NSwtMC4wOTM3NSAtMC4wODU5MzgsLTAuMDMxMjUgLTAuMTY3OTY5LC0wLjA2MjUgLTAuMjUsLTAuMDkzNzUgLTAuMDg1OTM4LC0wLjAzMTI1IC0wLjE2NDA2MiwtMC4wNDY4NzUgLTAuMjM0Mzc1LC0wLjA0Njg3NSAtMC4yNDIxODcsMCAtMC40NzY1NjMsMC4wODk4NDQgLTAuNzAzMTI1LDAuMjY1NjI1IC0wLjIxODc1LDAuMTY3OTY5IC0wLjMyODEyNSwwLjUgLTAuMzI4MTI1LDEgViAtMC45Mzc1IGMgMCwwLjEzNjcxOSAwLjA2NjQwNiwwLjI0NjA5NCAwLjIwMzEyNSwwLjMyODEyNSAwLjEzMjgxMiwwLjA4NTkzNyAwLjMyODEyNSwwLjE2Nzk2OSAwLjU3ODEyNSwwLjI1IDAuMTEzMjgxLDAuMDMxMjUgMC4yMDMxMjUsMC4wNjI1IDAuMjY1NjI1LDAuMDkzNzUgQyAzLjUzMTI1LC0wLjIzNDM3NSAzLjU2MjUsLTAuMTg3NSAzLjU2MjUsLTAuMTI1IDMuNTYyNSwtMC4wMDc4MTI1IDMuNDU3MDMxLDAuMDQ2ODc1IDMuMjUsMC4wNDY4NzUgMi45NTcwMzEsMC4wNDY4NzUgMi43MzQzNzUsMC4wMzEyNSAyLjU3ODEyNSwwIGMgLTAuMTU2MjUsLTAuMDE5NTMxMiAtMC4zNjcxODcsLTAuMDMxMjUgLTAuNjI1LC0wLjAzMTI1IC0wLjE3OTY4NywwIC0wLjMyMDMxMywwLjAwNzgxMjUgLTAuNDIxODc1LDAuMDE1NjI1IC0wLjEwNTQ2OSwwLjAxMTcxODc1IC0wLjIxNDg0NCwwLjAxOTUzMTI1IC0wLjMyODEyNSwwLjAzMTI1IC0wLjExNzE4NywwLjAxOTUzMTIgLTAuMjczNDM3LDAuMDMxMjUgLTAuNDY4NzUsMC4wMzEyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMTEiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgwLTQiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gMy4xODc1LDAuMjE4NzUgQyAyLjY0NDUzMSwwLjIxODc1IDIuMTY0MDYyLDAuMDg1OTM3NSAxLjc1LC0wLjE3MTg3NSAxLjM0Mzc1LC0wLjQ0MTQwNiAxLjAyMzQzOCwtMC44MjAzMTIgMC43OTY4NzUsLTEuMzEyNSBjIC0wLjIzMDQ2OSwtMC41IC0wLjM0Mzc1LC0xLjA3ODEyNSAtMC4zNDM3NSwtMS43MzQzNzUgMCwtMC41ODIwMzEgMC4xMjg5MDYsLTEuMTA5Mzc1IDAuMzkwNjI1LC0xLjU3ODEyNSAwLjI2OTUzMSwtMC40NzY1NjIgMC42MjUsLTAuODU5Mzc1IDEuMDYyNSwtMS4xNDA2MjUgMC40Mzc1LC0wLjI4OTA2MyAwLjkxNDA2MiwtMC40Mzc1IDEuNDM3NSwtMC40Mzc1IDAuMzk0NTMxLDAgMC43NSwwLjA3ODEyNSAxLjA2MjUsMC4yMzQzNzUgMC4zMTI1LDAuMTU2MjUgMC41NTQ2ODgsMC4zODI4MTIgMC43MzQzNzUsMC42NzE4NzUgMC4xNzU3ODEsMC4yODEyNSAwLjI2NTYyNSwwLjYwOTM3NSAwLjI2NTYyNSwwLjk4NDM3NSAwLDAuMzA0Njg4IC0wLjE1MjM0NCwwLjQ1MzEyNSAtMC40NTMxMjUsMC40NTMxMjUgSCAxLjc4MTI1IGMgLTAuMTM2NzE5LDAgLTAuMjM0Mzc1LDAuMDQyOTY5IC0wLjI5Njg3NSwwLjEyNSAtMC4wNTQ2ODcsMC4wNzQyMTkgLTAuMDc4MTI1LDAuMjE4NzUgLTAuMDc4MTI1LDAuNDM3NSAwLDAuNDgwNDY5IDAuMTAxNTYyLDAuOTE3OTY5IDAuMzEyNSwxLjMxMjUgMC4yMTg3NSwwLjM5ODQzNyAwLjUsMC43MTQ4NDQgMC44NDM3NSwwLjk1MzEyNSAwLjM1MTU2MiwwLjIzMDQ2OSAwLjczODI4MSwwLjM0Mzc1IDEuMTU2MjUsMC4zNDM3NSAwLjMwMDc4MSwwIDAuNTcwMzEyLC0wLjA1NDY4OCAwLjgxMjUsLTAuMTcxODc1IDAuMjUsLTAuMTEzMjgxIDAuNDY4NzUsLTAuMjgxMjUgMC42NTYyNSwtMC41IDAuMDM5MDYyLC0wLjA1MDc4MSAwLjA3MDMxMiwtMC4wODIwMzEgMC4wOTM3NSwtMC4wOTM3NSAwLjAxOTUzMSwtMC4wMTk1MzEgMC4wNDY4NzUsLTAuMDMxMjUgMC4wNzgxMjUsLTAuMDMxMjUgMC4wNzAzMTMsMCAwLjEwOTM3NSwwLjA1NDY4NyAwLjEwOTM3NSwwLjE1NjI1IDAsMC4xODc1IC0wLjA4OTg0NCwwLjM5ODQzNyAtMC4yNjU2MjUsMC42MjUgLTAuMTQ4NDM3LDAuMTg3NSAtMC4zMjgxMjUsMC4zNTU0NjkgLTAuNTQ2ODc1LDAuNSAtMC4yMTA5MzgsMC4xMzY3MTg4IC0wLjQzNzUsMC4yMzgyODEyIC0wLjY4NzUsMC4zMTI1IEMgMy43MTg3NSwwLjE3OTY4OCAzLjQ1NzAzMSwwLjIxODc1IDMuMTg3NSwwLjIxODc1IFogTSAxLjgxMjUsLTQuMzEyNSBoIDEuMzc1IGMgMC4yMzgyODEsMCAwLjQ0MTQwNiwtMC4wMDM5MSAwLjYwOTM3NSwtMC4wMTU2MjUgMC4xNjQwNjMsLTAuMDA3ODEgMC4zMzIwMzEsLTAuMDMxMjUgMC41LC0wLjA2MjUgMC4wMzkwNjMsLTAuMDA3ODEgMC4wNjY0MDYsLTAuMDM5MDYzIDAuMDc4MTI1LC0wLjA5Mzc1IDAuMDE5NTMxLC0wLjA2MjUgMC4wMzEyNSwtMC4xNDA2MjUgMC4wMzEyNSwtMC4yMzQzNzUgMCwtMC4yODkwNjIgLTAuMTMyODEyLC0wLjUzOTA2MiAtMC4zOTA2MjUsLTAuNzUgLTAuMjUsLTAuMjA3MDMxIC0wLjU0Njg3NSwtMC4zMTI1IC0wLjg5MDYyNSwtMC4zMTI1IC0wLjIzMDQ2OSwwIC0wLjQ2NDg0NCwwLjA3MDMxMiAtMC43MDMxMjUsMC4yMDMxMjUgLTAuMjMwNDY5LDAuMTM2NzE5IC0wLjQxNzk2OSwwLjMwODU5NCAtMC41NjI1LDAuNTE1NjI1IC0wLjE0ODQzNywwLjE5OTIxOSAtMC4yMTg3NSwwLjM5ODQzOCAtMC4yMTg3NSwwLjU5Mzc1IDAsMC4xMDU0NjkgMC4wNTQ2ODcsMC4xNTYyNSAwLjE3MTg3NSwwLjE1NjI1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgxNCIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtNSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAxLjc1LDAuMjAzMTI1IEMgMS41NzAzMTIsMC4yMDMxMjUgMS4zOTA2MjUsMC4xMzI4MTIgMS4yMDMxMjUsMCAxLjAyMzQzOCwtMC4xMzI4MTIgMC44NzUsLTAuMzAwNzgxIDAuNzUsLTAuNSAwLjYyNSwtMC43MDcwMzEgMC41NjI1LC0wLjg5ODQzOCAwLjU2MjUsLTEuMDc4MTI1IGMgMCwtMC4zMjAzMTMgMC4wODIwMzEsLTAuNTcwMzEzIDAuMjUsLTAuNzUgMC4xNjQwNjIsLTAuMTc1NzgxIDAuNDM3NSwtMC4zNDM3NSAwLjgxMjUsLTAuNSBsIDEuNTMxMjUsLTAuNjI1IEMgMy4zNTE1NjIsLTMuMDM1MTU2IDMuNDY4NzUsLTMuMTAxNTYyIDMuNSwtMy4xNTYyNSAzLjUzOTA2MiwtMy4yMTg3NSAzLjU2MjUsLTMuMzUxNTYyIDMuNTYyNSwtMy41NjI1IEwgMy41OTM3NSwtNC41MTU2MjUgQyAzLjYwMTU2MiwtNC43NzM0MzggMy41MzEyNSwtNSAzLjM3NSwtNS4xODc1IDMuMjI2NTYyLC01LjM3NSAzLjAwNzgxMiwtNS40Njg3NSAyLjcxODc1LC01LjQ2ODc1IGMgLTAuMTU2MjUsMCAtMC4zMDg1OTQsMC4wMjczNDQgLTAuNDUzMTI1LDAuMDc4MTI1IC0wLjE0ODQzNywwLjA0Mjk2OSAtMC4yNzM0MzcsMC4xMDU0NjkgLTAuMzc1LDAuMTg3NSAtMC4wNjI1LDAuMDQyOTY5IC0wLjEwNTQ2OSwwLjEwNTQ2OSAtMC4xMjUsMC4xODc1IC0wLjAyMzQzNywwLjA3NDIxOSAtMC4wMzEyNSwwLjE1NjI1IC0wLjAzMTI1LDAuMjUgMCwwLjA0Mjk2OSAwLDAuMDg5ODQ0IDAsMC4xNDA2MjUgQyAxLjc0MjE4OCwtNC41ODIwMzEgMS43NSwtNC41MzkwNjIgMS43NSwtNC41IDEuNzUsLTQuNDQ1MzEyIDEuNjg3NSwtNC4zNzg5MDYgMS41NjI1LC00LjI5Njg3NSAxLjQzNzUsLTQuMjEwOTM4IDEuMjk2ODc1LC00LjEzMjgxMiAxLjE0MDYyNSwtNC4wNjI1IDAuOTkyMTg4LC00IDAuODY3MTg4LC0zLjk2ODc1IDAuNzY1NjI1LC0zLjk2ODc1IDAuNzEwOTM4LC0zLjk2ODc1IDAuNjcxODc1LC0zLjk3NjU2MiAwLjY0MDYyNSwtNCAwLjYwOTM3NSwtNC4wMzEyNSAwLjU5Mzc1LC00LjA2NjQwNiAwLjU5Mzc1LC00LjEwOTM3NSAwLjU5Mzc1LC00LjI2NTYyNSAwLjY0NDUzMSwtNC40Mzc1IDAuNzUsLTQuNjI1IDAuODYzMjgxLC00LjgxMjUgMS4wMTU2MjUsLTQuOTg0Mzc1IDEuMjAzMTI1LC01LjE0MDYyNSAxLjQyOTY4OCwtNS4zNDc2NTYgMS42Nzk2ODgsLTUuNTMxMjUgMS45NTMxMjUsLTUuNjg3NSAyLjIyMjY1NiwtNS44NTE1NjIgMi40ODgyODEsLTUuOTc2NTYyIDIuNzUsLTYuMDYyNSBjIDAuMjU3ODEyLC0wLjA5Mzc1IDAuNDg4MjgxLC0wLjE0MDYyNSAwLjY4NzUsLTAuMTQwNjI1IDAuMzUxNTYyLDAgMC42NDg0MzgsMC4xMzI4MTMgMC44OTA2MjUsMC4zOTA2MjUgMC4yMzgyODEsMC4yNSAwLjM1MTU2MywwLjU2MjUgMC4zNDM3NSwwLjkzNzUgTCA0LjU5Mzc1LC0xLjI4MTI1IEMgNC41ODIwMzEsLTEuMDYyNSA0LjYyODkwNiwtMC44ODI4MTIgNC43MzQzNzUsLTAuNzUgNC44MzU5MzgsLTAuNjI1IDQuOTY4NzUsLTAuNTYyNSA1LjEyNSwtMC41NjI1IGMgMC4yNSwwIDAuNDM3NSwtMC4wNTQ2ODggMC41NjI1LC0wLjE3MTg3NSAwLjA1MDc4MSwtMC4wNTA3ODEgMC4wOTM3NSwtMC4wNzgxMjUgMC4xMjUsLTAuMDc4MTI1IDAuMDM5MDYyLDAgMC4wNzgxMjUsMC4wMTU2MjUgMC4xMDkzNzUsMC4wNDY4NzUgMC4wMzEyNSwwLjAzMTI1IDAuMDQ2ODc1LDAuMDc0MjE5IDAuMDQ2ODc1LDAuMTI1IDAsMC4xMDU0NjkgLTAuMDU0Njg4LDAuMjE0ODQ0IC0wLjE1NjI1LDAuMzI4MTI1IC0wLjE2Nzk2OSwwLjE1NjI1IC0wLjM0Mzc1LDAuMjgxMjUgLTAuNTMxMjUsMC4zNzUgLTAuMTc5Njg4LDAuMDkzNzUgLTAuMzUxNTYyLDAuMTQwNjI1IC0wLjUxNTYyNSwwLjE0MDYyNSAtMC40NjA5MzcsMCAtMC44MjQyMTksLTAuMjUzOTA2MiAtMS4wOTM3NSwtMC43NjU2MjUgSCAzLjYyNSBjIC0wLjMyNDIxOSwwLjI2MTcxOSAtMC42MzY3MTksMC40NTMxMjUgLTAuOTM3NSwwLjU3ODEyNSAtMC4zMDQ2ODgsMC4xMjUgLTAuNjE3MTg4LDAuMTg3NSAtMC45Mzc1LDAuMTg3NSB6IG0gMC43MDMxMjUsLTAuNzE4NzUgYyAwLjIwNzAzMSwwIDAuMzc4OTA2LC0wLjAzMTI1IDAuNTE1NjI1LC0wLjA5Mzc1IDAuMTQ0NTMxLC0wLjA2MjUgMC4yNjk1MzEsLTAuMTQ4NDM3IDAuMzc1LC0wLjI2NTYyNSAwLjA1MDc4MSwtMC4wMzkwNjIgMC4wOTM3NSwtMC4xMDE1NjIgMC4xMjUsLTAuMTg3NSAwLjAzOTA2MiwtMC4wOTM3NSAwLjA2NjQwNiwtMC4yMzQzNzUgMC4wNzgxMjUsLTAuNDIxODc1IEwgMy41NjI1LC0yLjIxODc1IEMgMy41NzAzMTIsLTIuMzMyMDMxIDMuNTY2NDA2LC0yLjQxMDE1NiAzLjU0Njg3NSwtMi40NTMxMjUgMy41MzUxNTYsLTIuNTAzOTA2IDMuNSwtMi41MzEyNSAzLjQzNzUsLTIuNTMxMjUgYyAtMC4wMjM0MzgsMCAtMC4wNTg1OTQsMC4wMDc4MSAtMC4xMDkzNzUsMC4wMTU2MjUgLTAuMDU0Njg3LDAuMDExNzE5IC0wLjExNzE4NywwLjAzMTI1IC0wLjE4NzUsMC4wNjI1IC0wLjUzMTI1LDAuMTg3NSAtMC45MDIzNDQsMC4zODY3MTkgLTEuMTA5Mzc1LDAuNTkzNzUgLTAuMjEwOTM4LDAuMTk5MjE5IC0wLjMxMjUsMC4zODI4MTMgLTAuMzEyNSwwLjU0Njg3NSAwLDAuMjYxNzE5IDAuMDc4MTI1LDAuNDYwOTM4IDAuMjM0Mzc1LDAuNTkzNzUgMC4xNTYyNSwwLjEzNjcxOSAwLjMyMDMxMywwLjIwMzEyNSAwLjUsMC4yMDMxMjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDE3IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC02Ij4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDIuODI4MTI1LDAuMjAzMTI1IGMgLTAuNDkyMTg3LDAgLTAuODcxMDk0LC0wLjE0ODQzNzUgLTEuMTQwNjI1LC0wLjQzNzUgLTAuMjczNDM4LC0wLjMwMDc4MSAtMC40MDYyNSwtMC43NSAtMC40MDYyNSwtMS4zNDM3NSBWIC01LjA2MjUgQyAxLjI4MTI1LC01LjEzMjgxMiAxLjI1LC01LjE4NzUgMS4xODc1LC01LjIxODc1IDEuMTI1LC01LjI1NzgxMiAwLjk5MjE4OCwtNS4yODEyNSAwLjc5Njg3NSwtNS4yODEyNSBoIC0wLjA5Mzc1IGMgLTAuMDU0Njg3LDAgLTAuMDkzNzUsLTAuMDMxMjUgLTAuMTI1LC0wLjA5Mzc1IC0wLjAzMTI1LC0wLjA2MjUgLTAuMDQ2ODc1LC0wLjEyODkwNiAtMC4wNDY4NzUsLTAuMjAzMTI1IDAsLTAuMDE5NTMxIDAuMDA3ODEyLC0wLjA1MDc4MSAwLjAzMTI1LC0wLjA5Mzc1IEMgMC41OTM3NSwtNS43MTA5MzggMC42MTMyODEsLTUuNzM4MjgxIDAuNjI1LC01Ljc1IDAuODMyMDMxLC01Ljg4MjgxMiAxLjAxNTYyNSwtNi4wMTk1MzEgMS4xNzE4NzUsLTYuMTU2MjUgMS4zMzU5MzgsLTYuMzAwNzgxIDEuNDg4MjgxLC02LjQ0MTQwNiAxLjYyNSwtNi41NzgxMjUgMS43NTc4MTIsLTYuNzEwOTM4IDEuODc1LC02LjgzMjAzMSAxLjk2ODc1LC02LjkzNzUgYyAwLjA1MDc4MSwtMC4wNTA3ODEgMC4wOTM3NSwtMC4wOTM3NSAwLjEyNSwtMC4xMjUgMC4wMzEyNSwtMC4wMzkwNjIgMC4wNzAzMTIsLTAuMDYyNSAwLjEyNSwtMC4wNjI1IDAuMDUwNzgxLDAgMC4wOTc2NTYsMC4wMTE3MTkgMC4xNDA2MjUsMC4wMzEyNSAwLjA1MDc4MSwwLjAyMzQzOCAwLjA3MDMxMywwLjA3MDMxMiAwLjA2MjUsMC4xNDA2MjUgTCAyLjM0Mzc1LC02LjI4MTI1IGMgLTAuMDExNzE5LDAuMTA1NDY5IDAuMDA3ODEsMC4xNzk2ODggMC4wNjI1LDAuMjE4NzUgQyAyLjQ2ODc1LC02LjAxOTUzMSAyLjU2NjQwNiwtNiAyLjcwMzEyNSwtNiBIIDQuNDA2MjUgYyAwLjAzOTA2MiwwIDAuMDc4MTI1LDAuMDMxMjUgMC4xMDkzNzUsMC4wOTM3NSAwLjAzMTI1LDAuMDYyNSAwLjA0Njg3NSwwLjE0MDYyNSAwLjA0Njg3NSwwLjIzNDM3NSAwLDAuMDkzNzUgLTAuMDE1NjI1LDAuMTgzNTk0IC0wLjA0Njg3NSwwLjI2NTYyNSAtMC4wMzEyNSwwLjA4NTkzOCAtMC4wNzAzMTMsMC4xMjUgLTAuMTA5Mzc1LDAuMTI1IEggMi45MjE4NzUgYyAtMC4yNSwwIC0wLjQxNDA2MywwLjAyMzQzOCAtMC40ODQzNzUsMC4wNjI1IC0wLjA3NDIxOSwwLjA0Mjk2OSAtMC4xMDkzNzUsMC4xNjQwNjIgLTAuMTA5Mzc1LDAuMzU5Mzc1IHYgMi45NTMxMjUgYyAwLDAuMzk4NDM4IDAuMDgyMDMxLDAuNzE0ODQ0IDAuMjUsMC45NTMxMjUgMC4xNjQwNjMsMC4yMzA0NjkgMC40MTAxNTYsMC4zNDM3NSAwLjczNDM3NSwwLjM0Mzc1IDAuMjg5MDYyLDAgMC41MTU2MjUsLTAuMDE5NTMxIDAuNjcxODc1LC0wLjA2MjUgMC4xNjQwNjMsLTAuMDUwNzgxIDAuMzEyNSwtMC4xMjUgMC40Mzc1LC0wLjIxODc1IDAuMDE5NTMxLC0wLjAxOTUzMSAwLjAzOTA2MywtMC4wMzEyNSAwLjA2MjUsLTAuMDMxMjUgMC4wMzkwNjMsMCAwLjA2NjQwNiwwLjAyNzM0NCAwLjA3ODEyNSwwLjA3ODEyNSAwLjAxOTUzMSwwLjA0Mjk2OSAwLjAzMTI1LDAuMDg5ODQ0IDAuMDMxMjUsMC4xNDA2MjUgMCwwLjA1NDY4NyAtMC4wODU5MzgsMC4xNTIzNDQgLTAuMjUsMC4yOTY4NzUgQyA0LjE3NTc4MSwtMC4yNTc4MTIgMy45NTcwMzEsLTAuMTI1IDMuNjg3NSwwIDMuNDI1NzgxLDAuMTMyODEyIDMuMTQwNjI1LDAuMjAzMTI1IDIuODI4MTI1LDAuMjAzMTI1IFogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgyMCIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtNyI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSA2LjEwOTM3NSwwLjIxODc1IGMgLTAuNjk5MjE5LDAgLTEuMzc1LC0wLjEyMTA5MzggLTIuMDMxMjUsLTAuMzU5Mzc1IEMgMy40Mjk2ODgsLTAuMzc4OTA2IDIuODUxNTYyLC0wLjcxODc1IDIuMzQzNzUsLTEuMTU2MjUgMS44MzIwMzEsLTEuNjAxNTYyIDEuNDI1NzgxLC0yLjE0MDYyNSAxLjEyNSwtMi43NjU2MjUgMC44MzIwMzEsLTMuMzkwNjI1IDAuNjg3NSwtNC4wODIwMzEgMC42ODc1LC00Ljg0Mzc1IGMgMCwtMC43MjY1NjIgMC4xNTYyNSwtMS4zOTg0MzggMC40Njg3NSwtMi4wMTU2MjUgMC4zMTI1LC0wLjYyNSAwLjczNDM3NSwtMS4xNjQwNjMgMS4yNjU2MjUsLTEuNjI1IDAuNTM5MDYzLC0wLjQ2ODc1IDEuMTYwMTU2LC0wLjgyODEyNSAxLjg1OTM3NSwtMS4wNzgxMjUgMC42OTUzMTIsLTAuMjUgMS40Mjk2ODgsLTAuMzc1IDIuMjAzMTI1LC0wLjM3NSAwLjM4MjgxMywwIDAuNzEwOTM3LDAuMDE1NjI1IDAuOTg0Mzc1LDAuMDQ2ODc1IDAuMjY5NTMxLDAuMDIzNDM3IDAuNTMxMjUsMC4wNjI1IDAuNzgxMjUsMC4xMjUgMC4yNTc4MTIsMC4wNTQ2ODcgMC41NjI1LDAuMTIxMDk0IDAuOTA2MjUsMC4yMDMxMjUgMC4xNDQ1MzEsMC4wNDI5NjkgMC4yNSwwLjEwNTQ2OSAwLjMxMjUsMC4xODc1IDAuMDYyNSwwLjA4NTkzOCAwLjA5NzY1NiwwLjE5NTMxMiAwLjEwOTM3NSwwLjMyODEyNSAwLjAxOTUzMSwwLjIzMDQ2OSAwLjA0Njg3NSwwLjQ4MDQ2OSAwLjA3ODEyNSwwLjc1IDAuMDMxMjUsMC4yNjE3MTkgMC4wNTA3ODEsMC41ODk4NDQgMC4wNjI1LDAuOTg0Mzc1IEMgOS43MjY1NjIsLTcuMjUgOS42OTUzMTIsLTcuMTkxNDA2IDkuNjI1LC03LjE0MDYyNSA5LjU1MDc4MSwtNy4wOTc2NTYgOS40Njg3NSwtNy4wODU5MzggOS4zNzUsLTcuMTA5Mzc1IDkuMjg5MDYyLC03LjEyODkwNiA5LjIzNDM3NSwtNy4xOTUzMTIgOS4yMDMxMjUsLTcuMzEyNSA5LjEwOTM3NSwtNy42ODc1IDguOTkyMTg4LC04LjAwNzgxMiA4Ljg1OTM3NSwtOC4yODEyNSA4LjczNDM3NSwtOC41NjI1IDguNTM5MDYyLC04Ljc4OTA2MiA4LjI4MTI1LC04Ljk2ODc1IDguMDMxMjUsLTkuMTMyODEyIDcuNzI2NTYyLC05LjI1NzgxMiA3LjM3NSwtOS4zNDM3NSA3LjAxOTUzMSwtOS40Mzc1IDYuNjMyODEyLC05LjQ4NDM3NSA2LjIxODc1LC05LjQ4NDM3NSBjIC0wLjU3NDIxOSwwIC0xLjEwOTM3NSwwLjEyMTA5NCAtMS42MDkzNzUsMC4zNTkzNzUgLTAuNDkyMTg3LDAuMjMwNDY5IC0wLjkxNDA2MywwLjU0Njg3NSAtMS4yNjU2MjUsMC45NTMxMjUgLTAuMzU1NDY5LDAuNDA2MjUgLTAuNjM2NzE5LDAuODY3MTg3IC0wLjg0Mzc1LDEuMzc1IC0wLjE5OTIxOSwwLjUxMTcxOSAtMC4yOTY4NzUsMS4wNDI5NjkgLTAuMjk2ODc1LDEuNTkzNzUgMCwwLjYwNTQ2OSAwLjA5NzY1NiwxLjIwMzEyNSAwLjI5Njg3NSwxLjc5Njg3NSAwLjE5NTMxMiwwLjU5Mzc1IDAuNDc2NTYyLDEuMTMyODEyIDAuODQzNzUsMS42MDkzNzUgMC4zNjMyODEsMC40Njg3NSAwLjc5Njg3NSwwLjg1MTU2MyAxLjI5Njg3NSwxLjE0MDYyNSAwLjUwNzgxMywwLjI4MTI1IDEuMDcwMzEzLDAuNDIxODc1IDEuNjg3NSwwLjQyMTg3NSAwLjcxODc1LDAgMS4zMTI1LC0wLjE2NDA2MyAxLjc4MTI1LC0wLjUgMC40Njg3NSwtMC4zMzIwMzEgMC44NjcxODcsLTAuNzg5MDYzIDEuMjAzMTI1LC0xLjM3NSBDIDkuMzgyODEyLC0yLjI0MjE4OCA5LjQ4ODI4MSwtMi4zMTI1IDkuNjI1LC0yLjMxMjUgYyAwLjEzMjgxMiwwIDAuMjAzMTI1LDAuMDg1OTM4IDAuMjAzMTI1LDAuMjUgMCwwLjA3NDIxOSAtMC4wMjM0MzcsMC4xOTkyMTkgLTAuMDYyNSwwLjM3NSAtMC4wNDI5NjksMC4xNzk2ODggLTAuMDkzNzUsMC4zNjcxODggLTAuMTU2MjUsMC41NjI1IC0wLjA2MjUsMC4xODc1IC0wLjEyNSwwLjM1OTM3NSAtMC4xODc1LDAuNTE1NjI1IEMgOS4zNDc2NTYsLTAuNDcyNjU2IDkuMjg5MDYyLC0wLjM4MjgxMiA5LjI1LC0wLjM0Mzc1IGMgLTAuMDQyOTY5LDAuMDQyOTY5IC0wLjE0ODQzOCwwLjA4OTg0NCAtMC4zMTI1LDAuMTQwNjI1IC0wLjM2NzE4OCwwLjE0ODQzNzUgLTAuODA4NTk0LDAuMjUgLTEuMzI4MTI1LDAuMzEyNSAtMC41MTE3MTksMC4wNzAzMTMgLTEuMDExNzE5LDAuMTA5Mzc1IC0xLjUsMC4xMDkzNzUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDIzIiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC04Ij4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDAuNzE4NzUsMC4wNzgxMjUgYyAtMC4xMjUsMCAtMC4yMzA0NjksLTAuMDE1NjI1IC0wLjMxMjUsLTAuMDQ2ODc1IC0wLjA4NTkzOCwtMC4wMjM0Mzc1IC0wLjEyNSwtMC4wNjI1IC0wLjEyNSwtMC4xMjUgMCwtMC4xMTMyODEgMC4xNjQwNjIsLTAuMjAzMTI1IDAuNSwtMC4yNjU2MjUgMC4zNzUsLTAuMDcwMzEzIDAuNjYwMTU2LC0wLjE4NzUgMC44NTkzNzUsLTAuMzQzNzUgMC4yMDcwMzEsLTAuMTU2MjUgMC4zMTI1LC0wLjQxNDA2MyAwLjMxMjUsLTAuNzgxMjUgdiAtNi43NSBDIDEuOTUzMTI1LC04LjU5NzY1NiAxLjg3NSwtOC44NjMyODEgMS43MTg3NSwtOS4wMzEyNSAxLjU3MDMxMiwtOS4xOTUzMTIgMS4zMTI1LC05LjI5Njg3NSAwLjkzNzUsLTkuMzI4MTI1IDAuNzY5NTMxLC05LjM0NzY1NiAwLjY0NDUzMSwtOS4zODI4MTIgMC41NjI1LC05LjQzNzUgMC40ODgyODEsLTkuNSAwLjQ1MzEyNSwtOS41NjI1IDAuNDUzMTI1LC05LjYyNSBjIDAsLTAuMDYyNSAwLjAzNTE1NiwtMC4xMDE1NjIgMC4xMDkzNzUsLTAuMTI1IDAuMDgyMDMxLC0wLjAzMTI1IDAuMTkxNDA2LC0wLjA0Njg3NSAwLjMyODEyNSwtMC4wNDY4NzUgMC4yNjk1MzEsMCAwLjQ3NjU2MywwIDAuNjI1LDAgMC4xNDQ1MzEsMCAwLjI4NTE1NiwwLjAwNzgxIDAuNDIxODc1LDAuMDE1NjI1IDAuMTMyODEyLDAgMC4zMDA3ODEsMCAwLjUsMCAwLjE5NTMxMiwwIDAuMzYzMjgxLC0wLjAwMzkxIDAuNSwtMC4wMTU2MjUgMC4xNDQ1MzEsLTAuMDE5NTMxIDAuMzAwNzgxLC0wLjAzNTE1NiAwLjQ2ODc1LC0wLjA0Njg3NSAwLjE3NTc4MSwtMC4wMDc4MSAwLjQxMDE1NiwtMC4wMTU2MjUgMC43MDMxMjUsLTAuMDE1NjI1IDEuMTY0MDYzLDAgMi4wMzUxNTYsMC4xNzE4NzUgMi42MDkzNzUsMC41MTU2MjUgMC41ODIwMzEsMC4zMzU5MzggMC44NzUsMC45MDYyNSAwLjg3NSwxLjcxODc1IDAsMC4zNDM3NSAtMC4wNTg1OTQsMC42NDg0MzggLTAuMTcxODc1LDAuOTA2MjUgLTAuMTE3MTg3LDAuMjUgLTAuMjMwNDY5LDAuNDI5Njg4IC0wLjM0Mzc1LDAuNTMxMjUgLTAuMTU2MjUsMC4xNjc5NjkgLTAuMzA0Njg3LDAuMjkyOTY5IC0wLjQzNzUsMC4zNzUgLTAuMTI1LDAuMDg1OTM4IC0wLjMxMjUsMC4xNzk2ODggLTAuNTYyNSwwLjI4MTI1IC0wLjA0Mjk2OSwwLjAxMTcxOSAtMC4wNjI1LDAuMDMxMjUgLTAuMDYyNSwwLjA2MjUgMCwwLjAzMTI1IDAuMDE5NTMxLDAuMDU4NTk0IDAuMDYyNSwwLjA3ODEyNSAwLjIyNjU2MywwLjA3NDIxOSAwLjQ2MDkzNywwLjE2Nzk2OSAwLjcwMzEyNSwwLjI4MTI1IDAuMjUsMC4xMDU0NjkgMC40NzY1NjIsMC4yNDYwOTQgMC42ODc1LDAuNDIxODc1IDAuMjE4NzUsMC4xNzk2ODggMC4zOTQ1MzEsMC40MTQwNjIgMC41MzEyNSwwLjcwMzEyNSAwLjEzMjgxMiwwLjI4MTI1IDAuMjAzMTI1LDAuNjQwNjI1IDAuMjAzMTI1LDEuMDc4MTI1IDAsMC41NTQ2ODggLTAuMDg5ODQ0LDAuOTkyMTg4IC0wLjI2NTYyNSwxLjMxMjUgLTAuMTY3OTY5LDAuMzEyNSAtMC4zNzUsMC41NTg1OTQgLTAuNjI1LDAuNzM0Mzc1IC0wLjI0MjE4OCwwLjE2Nzk2OSAtMC40NjQ4NDQsMC4zMDQ2ODcgLTAuNjcxODc1LDAuNDA2MjUgQyA2LjMzNTkzOCwtMC4yODUxNTYgNS45NzY1NjIsLTAuMTU2MjUgNS41NjI1LC0wLjA2MjUgNS4xNTYyNSwwLjAxOTUzMTIgNC42NjQwNjIsMC4wNjI1IDQuMDkzNzUsMC4wNjI1IDMuOTY4NzUsMC4wNjI1IDMuNzczNDM4LDAuMDUwNzgxMiAzLjUxNTYyNSwwLjAzMTI1IDMuMjUzOTA2LDAuMDA3ODEyNSAyLjk3MjY1NiwwIDIuNjcxODc1LDAgMi40MTAxNTYsMCAyLjE4NzUsMC4wMDM5MDYyNSAyLDAuMDE1NjI1IDEuODIwMzEyLDAuMDIzNDM3NSAxLjYzMjgxMiwwLjAzNTE1NjIgMS40Mzc1LDAuMDQ2ODc1IDEuMjUsMC4wNjY0MDYyIDEuMDA3ODEyLDAuMDc4MTI1IDAuNzE4NzUsMC4wNzgxMjUgWiBNIDQuMzEyNSwtMC41NjI1IGMgMC40Mzc1LDAgMC44NDM3NSwtMC4wOTc2NTYgMS4yMTg3NSwtMC4yOTY4NzUgMC4zODI4MTIsLTAuMTk1MzEzIDAuNjkxNDA2LC0wLjQ2ODc1IDAuOTIxODc1LC0wLjgxMjUgMC4yMjY1NjMsLTAuMzQzNzUgMC4zNDM3NSwtMC43MjY1NjMgMC4zNDM3NSwtMS4xNTYyNSAwLC0wLjM5NDUzMSAtMC4wNzAzMTMsLTAuNzE4NzUgLTAuMjAzMTI1LC0wLjk2ODc1IC0wLjEyNSwtMC4yNTc4MTMgLTAuMjc3MzQ0LC0wLjQ2ODc1IC0wLjQ1MzEyNSwtMC42MjUgLTAuMTY3OTY5LC0wLjE2NDA2MyAtMC4zMjAzMTMsLTAuMjgxMjUgLTAuNDUzMTI1LC0wLjM0Mzc1IC0wLjEzNjcxOSwtMC4wODIwMzEgLTAuMzQzNzUsLTAuMTY0MDYzIC0wLjYyNSwtMC4yNSAtMC4yNzM0MzgsLTAuMDgyMDMxIC0wLjYzNjcxOSwtMC4xMjUgLTEuMDkzNzUsLTAuMTI1IC0wLjMxMjUsMCAtMC41MzEyNSwwLjA3MDMxMyAtMC42NTYyNSwwLjIwMzEyNSAtMC4xMjUsMC4xMjUgLTAuMTg3NSwwLjIzNDM3NSAtMC4xODc1LDAuMzI4MTI1IFYgLTEuNjI1IGMgMCwwLjQyOTY4OCAwLjA5NzY1NiwwLjcxNDg0NCAwLjI5Njg3NSwwLjg1OTM3NSBDIDMuNjI4OTA2LC0wLjYyODkwNiAzLjkyNTc4MSwtMC41NjI1IDQuMzEyNSwtMC41NjI1IFogbSAtMC41LC01IGMgMC4yNjk1MzEsMCAwLjU2MjUsLTAuMDMxMjUgMC44NzUsLTAuMDkzNzUgQyA1LC01LjcxODc1IDUuMzEyNSwtNS44MzIwMzEgNS42MjUsLTYgYyAwLjExMzI4MSwtMC4wNjI1IDAuMjUzOTA2LC0wLjIwNzAzMSAwLjQyMTg3NSwtMC40Mzc1IDAuMTY0MDYzLC0wLjIyNjU2MiAwLjI1LC0wLjU1NDY4OCAwLjI1LC0wLjk4NDM3NSBDIDYuMjk2ODc1LC03LjcxMDkzOCA2LjIzODI4MSwtOC4wMDc4MTIgNi4xMjUsLTguMzEyNSA2LjAxOTUzMSwtOC42MjUgNS44MTI1LC04Ljg4MjgxMiA1LjUsLTkuMDkzNzUgNS4xOTUzMTIsLTkuMzAwNzgxIDQuNzM0Mzc1LC05LjQwNjI1IDQuMTA5Mzc1LC05LjQwNjI1IGMgLTAuNDA2MjUsMCAtMC42NzE4NzUsMC4wNTg1OTQgLTAuNzk2ODc1LDAuMTcxODc1IC0wLjEyNSwwLjEwNTQ2OSAtMC4xODc1LDAuMjczNDM3IC0wLjE4NzUsMC41IFYgLTYuMTI1IGMgMCwwLjI2MTcxOSAwLjA4MjAzMSwwLjQyMTg3NSAwLjI1LDAuNDg0Mzc1IDAuMTY0MDYyLDAuMDU0Njg3IDAuMzEyNSwwLjA3ODEyNSAwLjQzNzUsMC4wNzgxMjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDI2IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC05Ij4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDAuOTg0Mzc1LDAuMDc4MTI1IGMgLTAuMTI1LDAgLTAuMjMwNDY5LC0wLjAxNTYyNSAtMC4zMTI1LC0wLjA0Njg3NSBDIDAuNTk3NjU2LDAuMDA3ODEyNSAwLjU2MjUsLTAuMDMxMjUgMC41NjI1LC0wLjA5Mzc1IGMgMCwtMC4xMTMyODEgMC4xNjAxNTYsLTAuMjAzMTI1IDAuNDg0Mzc1LC0wLjI2NTYyNSAwLjM4MjgxMywtMC4wNzAzMTMgMC42NjQwNjMsLTAuMTg3NSAwLjg0Mzc1LC0wLjM0Mzc1IDAuMTc1NzgxLC0wLjE1NjI1IDAuMjY1NjI1LC0wLjQxNDA2MyAwLjI2NTYyNSwtMC43ODEyNSB2IC02Ljc1IEMgMi4xNTYyNSwtOC41OTc2NTYgMi4wODIwMzEsLTguODUxNTYyIDEuOTM3NSwtOSAxLjc4OTA2MiwtOS4xNDQ1MzEgMS41MzEyNSwtOS4yNTM5MDYgMS4xNTYyNSwtOS4zMjgxMjUgMC45ODgyODEsLTkuMzU5Mzc1IDAuODYzMjgxLC05LjM5ODQzOCAwLjc4MTI1LC05LjQ1MzEyNSAwLjY5NTMxMiwtOS41MDM5MDYgMC42NTYyNSwtOS41NjI1IDAuNjU2MjUsLTkuNjI1IGMgMCwtMC4wNjI1IDAuMDM5MDYyLC0wLjEwMTU2MiAwLjEyNSwtMC4xMjUgMC4wODIwMzEsLTAuMDMxMjUgMC4xODc1LC0wLjA0Njg3NSAwLjMxMjUsLTAuMDQ2ODc1IDAuMzgyODEyLDAgMC43MDcwMzEsMC4wMDc4MSAwLjk2ODc1LDAuMDE1NjI1IDAuMjU3ODEyLDAuMDExNzE5IDAuNTE1NjI1LDAuMDIzNDM4IDAuNzY1NjI1LDAuMDMxMjUgMC4yNTc4MTMsMCAwLjU2NjQwNiwwIDAuOTIxODc1LDAgMC4zMzIwMzEsMCAwLjY3OTY4OCwwIDEuMDQ2ODc1LDAgQyA1LjE2MDE1NiwtOS43NTc4MTIgNS41LC05Ljc2NTYyNSA1LjgxMjUsLTkuNzY1NjI1IDYuMTQ0NTMxLC05Ljc3MzQzOCA2LjQyNTc4MSwtOS43ODEyNSA2LjY1NjI1LC05Ljc4MTI1IGMgMC4yMzgyODEsLTAuMDA3ODEgMC4zNzg5MDYsLTAuMDE1NjI1IDAuNDIxODc1LC0wLjAxNTYyNSAwLjA1MDc4MSwwIDAuMTAxNTYzLDAuMDExNzE5IDAuMTU2MjUsMC4wMzEyNSAwLjA2MjUsMC4wMjM0MzcgMC4wOTc2NTYsMC4wNTg1OTQgMC4xMDkzNzUsMC4xMDkzNzUgMC4wNTA3ODEsMC4yODEyNSAwLjEwMTU2MiwwLjU1ODU5NCAwLjE1NjI1LDAuODI4MTI1IDAuMDUwNzgxLDAuMjczNDM3IDAuMDc4MTI1LDAuNTExNzE5IDAuMDc4MTI1LDAuNzE4NzUgMCwwLjA4NTkzNyAtMC4wMjczNDQsMC4xNDA2MjUgLTAuMDc4MTI1LDAuMTcxODc1IC0wLjA0Mjk2OSwwLjAzMTI1IC0wLjA4OTg0NCwwLjA0Njg3NSAtMC4xNDA2MjUsMC4wNDY4NzUgLTAuMDQyOTY5LDAgLTAuMDc0MjE5LC0wLjAwNzgxIC0wLjA5Mzc1LC0wLjAzMTI1IC0wLjAyMzQzNywtMC4wMzEyNSAtMC4wNDI5NjksLTAuMDcwMzEzIC0wLjA2MjUsLTAuMTI1IEMgNy4xNDg0MzgsLTguMjEwOTM4IDcuMDk3NjU2LC04LjM3NSA3LjA0Njg3NSwtOC41MzEyNSA2Ljk5MjE4OCwtOC42ODc1IDYuOTM3NSwtOC43OTY4NzUgNi44NzUsLTguODU5Mzc1IDYuNzI2NTYyLC05LjAyMzQzOCA2LjU3MDMxMiwtOS4xMzI4MTIgNi40MDYyNSwtOS4xODc1IDYuMjM4MjgxLC05LjIzODI4MSA2LjA1NDY4OCwtOS4yNjU2MjUgNS44NTkzNzUsLTkuMjY1NjI1IEggMy45MDYyNSBjIC0wLjA4NTkzOCwwIC0wLjE5OTIxOSwwLjA0Njg3NSAtMC4zNDM3NSwwLjE0MDYyNSAtMC4xMzY3MTksMC4wODU5MzggLTAuMjAzMTI1LDAuMTk1MzEyIC0wLjIwMzEyNSwwLjMyODEyNSB2IDMuMTg3NSBjIDAsMC4wOTM3NSAwLjAyMzQzNywwLjE3MTg3NSAwLjA3ODEyNSwwLjIzNDM3NSAwLjA2MjUsMC4wNjI1IDAuMTI1LDAuMDkzNzUgMC4xODc1LDAuMDkzNzUgaCAxLjQ4NDM3NSBjIDAuMjg5MDYzLDAgMC40ODgyODEsLTAuMDUwNzgxIDAuNTkzNzUsLTAuMTU2MjUgMC4xMTMyODEsLTAuMTAxNTYyIDAuMjA3MDMxLC0wLjI5Njg3NSAwLjI4MTI1LC0wLjU3ODEyNSAwLjA2MjUsLTAuMjE4NzUgMC4xNDg0MzcsLTAuMzI4MTI1IDAuMjY1NjI1LC0wLjMyODEyNSAwLjAzOTA2MiwwIDAuMDgyMDMxLDAuMDIzNDM4IDAuMTI1LDAuMDYyNSAwLjA1MDc4MSwwLjA0Mjk2OSAwLjA3ODEyNSwwLjEwMTU2MiAwLjA3ODEyNSwwLjE3MTg3NSAwLDAuMDQyOTY5IC0wLjAwNzgxLDAuMTM2NzE5IC0wLjAxNTYyNSwwLjI4MTI1IDAsMC4xMzY3MTkgLTAuMDA3ODEsMC4yODEyNSAtMC4wMTU2MjUsMC40Mzc1IC0wLjAxMTcxOSwwLjE0ODQzNyAtMC4wMTU2MjUsMC4yNTc4MTMgLTAuMDE1NjI1LDAuMzI4MTI1IDAsMC4xMDU0NjkgMCwwLjI0MjE4OCAwLDAuNDA2MjUgMC4wMDc4MSwwLjE2Nzk2OSAwLjAxNTYyNSwwLjMyODEyNSAwLjAxNTYyNSwwLjQ4NDM3NSAwLjAwNzgxLDAuMTQ4NDM3IDAuMDE1NjI1LDAuMjM0Mzc1IDAuMDE1NjI1LDAuMjY1NjI1IDAsMC4wNzQyMTkgLTAuMDExNzE5LDAuMTM2NzE5IC0wLjAzMTI1LDAuMTg3NSAtMC4wMTE3MTksMC4wNTQ2ODggLTAuMDQ2ODc1LDAuMDc4MTI1IC0wLjEwOTM3NSwwLjA3ODEyNSAtMC4xNDg0MzcsMCAtMC4yNjE3MTksLTAuMTYwMTU2IC0wLjM0Mzc1LC0wLjQ4NDM3NSAtMC4wNjI1LC0wLjIyNjU2MiAtMC4xNDg0MzcsLTAuMzk0NTMxIC0wLjI1LC0wLjUgLTAuMDkzNzUsLTAuMTEzMjgxIC0wLjI0MjE4NywtMC4xNzE4NzUgLTAuNDM3NSwtMC4xNzE4NzUgSCAzLjg3NSBjIC0wLjE3OTY4OCwwIC0wLjMwODU5NCwwLjAyMzQzNyAtMC4zOTA2MjUsMC4wNjI1IC0wLjA4NTkzNywwLjA0Mjk2OSAtMC4xMjUsMC4xNTIzNDQgLTAuMTI1LDAuMzI4MTI1IHYgMi44NzUgYyAwLDAuMzg2NzE5IDAuMDc4MTI1LDAuNjUyMzQ0IDAuMjM0Mzc1LDAuNzk2ODc1IDAuMTY0MDYyLDAuMTM2NzE5IDAuNDE0MDYyLDAuMjAzMTI1IDAuNzUsMC4yMDMxMjUgaCAxLjEwOTM3NSBjIDAuMzIwMzEzLDAgMC41ODU5MzcsLTAuMDE1NjI1IDAuNzk2ODc1LC0wLjA0Njg3NSBDIDYuNDY4NzUsLTAuNjA5Mzc1IDYuNjYwMTU2LC0wLjY3NTc4MSA2LjgyODEyNSwtMC43ODEyNSA2Ljk4NDM3NSwtMC44ODI4MTIgNy4xMjUsLTEuMDIzNDM4IDcuMjUsLTEuMjAzMTI1IDcuMzc1LC0xLjM5MDYyNSA3LjUxOTUzMSwtMS42MzI4MTIgNy42ODc1LC0xLjkzNzUgNy43MDcwMzEsLTIgNy43MzgyODEsLTIuMDQ2ODc1IDcuNzgxMjUsLTIuMDc4MTI1IDcuODIwMzEyLC0yLjExNzE4OCA3Ljg2NzE4OCwtMi4xMzI4MTIgNy45MjE4NzUsLTIuMTI1IDcuOTcyNjU2LC0yLjExMzI4MSA4LjAwNzgxMiwtMi4wOTM3NSA4LjAzMTI1LC0yLjA2MjUgOC4wNjI1LC0yLjAzMTI1IDguMDc4MTI1LC0xLjk4NDM3NSA4LjA3ODEyNSwtMS45MjE4NzUgOC4wNzgxMjUsLTEuODI4MTI1IDguMDUwNzgxLC0xLjY2NDA2MiA4LC0xLjQzNzUgNy45NTcwMzEsLTEuMjE4NzUgNy44OTQ1MzEsLTAuOTg4MjgxIDcuODEyNSwtMC43NSA3LjczODI4MSwtMC41MDc4MTIgNy42NzU3ODEsLTAuMzIwMzEyIDcuNjI1LC0wLjE4NzUgNy41OTM3NSwtMC4xMTMyODEgNy41NjI1LC0wLjA1MDc4MTIgNy41MzEyNSwwIDcuNTA3ODEyLDAuMDUwNzgxMiA3LjQ2ODc1LDAuMDc4MTI1IDcuNDA2MjUsMC4wNzgxMjUgNi45MjU3ODEsMC4wNzgxMjUgNi40NzY1NjIsMC4wNzAzMTI1IDYuMDYyNSwwLjA2MjUgNS42NTYyNSwwLjA1MDc4MTIgNS4yNjU2MjUsMC4wMzkwNjI1IDQuODkwNjI1LDAuMDMxMjUgNC41MjM0MzgsMC4wMTk1MzEyIDQuMTY0MDYyLDAuMDA3ODEyNSAzLjgxMjUsMCAzLjQ1NzAzMSwtMC4wMDc4MTI1IDMuMDkzNzUsLTAuMDE1NjI1IDIuNzE4NzUsLTAuMDE1NjI1IDIuNSwtMC4wMTU2MjUgMi4zMDQ2ODgsLTAuMDA3ODEyNSAyLjE0MDYyNSwwIGMgLTAuMTU2MjUsMC4wMTk1MzEyIC0wLjMyNDIxOSwwLjAzNTE1NjIgLTAuNSwwLjA0Njg3NSAtMC4xNjc5NjksMC4wMTk1MzEyIC0wLjM4NjcxOSwwLjAzMTI1IC0wLjY1NjI1LDAuMDMxMjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDI5IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0xMCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAwLjg5MDYyNSwwLjA3ODEyNSBDIDAuNzUzOTA2LDAuMDc4MTI1IDAuNjQ0NTMxLDAuMDYyNSAwLjU2MjUsMC4wMzEyNSAwLjQ4ODI4MSwwLjAwNzgxMjUgMC40NTMxMjUsLTAuMDMxMjUgMC40NTMxMjUsLTAuMDkzNzUgYyAwLC0wLjExMzI4MSAwLjE2MDE1NiwtMC4yMDMxMjUgMC40ODQzNzUsLTAuMjY1NjI1IDAuMzgyODEyLC0wLjA3MDMxMyAwLjY0ODQzOCwtMC4xODc1IDAuNzk2ODc1LC0wLjM0Mzc1IEMgMS44Nzg5MDYsLTAuODU5Mzc1IDEuOTUzMTI1LC0xLjEyNSAxLjk1MzEyNSwtMS41IHYgLTYuMzI4MTI1IGMgMCwtMC40NDUzMTMgLTAuMDU4NTk0LC0wLjc4OTA2MyAtMC4xNzE4NzUsLTEuMDMxMjUgLTAuMTE3MTg4LC0wLjIzODI4MSAtMC4zNjcxODgsLTAuMzk0NTMxIC0wLjc1LC0wLjQ2ODc1IC0wLjE2Nzk2OSwtMC4wMzEyNSAtMC4yOTI5NjksLTAuMDcwMzEzIC0wLjM3NSwtMC4xMjUgQyAwLjU4MjAzMSwtOS41MDM5MDYgMC41NDY4NzUsLTkuNTYyNSAwLjU0Njg3NSwtOS42MjUgYyAwLC0wLjA2MjUgMC4wMzUxNTYsLTAuMTAxNTYyIDAuMTA5Mzc1LC0wLjEyNSAwLjA4MjAzMSwtMC4wMzEyNSAwLjE4NzUsLTAuMDQ2ODc1IDAuMzEyNSwtMC4wNDY4NzUgMC4zNzUsMCAwLjY4NzUsMC4wMDc4MSAwLjkzNzUsMC4wMTU2MjUgMC4yNTc4MTIsMC4wMTE3MTkgMC41MTU2MjUsMC4wMjM0MzggMC43NjU2MjUsMC4wMzEyNSAwLjI1LDAgMC41NDY4NzUsMCAwLjg5MDYyNSwwIDAuMjgxMjUsMCAwLjU4NTkzOCwwIDAuOTIxODc1LDAgMC4zMzIwMzEsMCAwLjY0ODQzNywwIDAuOTUzMTI1LDAgMC4zMjAzMTIsMCAwLjYwMTU2MiwtMC4wMjM0MzggMC44NDM3NSwtMC4wNzgxMjUgMC4yNSwtMC4wNTA3ODEgMC40Njg3NSwtMC4wNzgxMjUgMC42NTYyNSwtMC4wNzgxMjUgMC4wMzkwNjIsMCAwLjA5Mzc1LDAuMDExNzE5IDAuMTU2MjUsMC4wMzEyNSAwLjA2MjUsMC4wMjM0MzggMC4wOTc2NTYsMC4wNTg1OTQgMC4xMDkzNzUsMC4xMDkzNzUgMC4wMTk1MzEsMC4xMTcxODcgMC4wMzUxNTYsMC4yODEyNSAwLjA0Njg3NSwwLjUgMC4wMDc4MSwwLjIxMDkzNyAwLjAxNTYyNSwwLjQxNDA2MyAwLjAxNTYyNSwwLjYwOTM3NSAwLjAwNzgxLDAuMTk5MjE5IDAuMDE1NjI1LDAuMzM1OTM4IDAuMDE1NjI1LDAuNDA2MjUgMCwwLjIxMDkzOCAtMC4wNDY4NzUsMC4zMTI1IC0wLjE0MDYyNSwwLjMxMjUgQyA3LjA4NTkzOCwtNy45Mzc1IDcuMDM5MDYyLC03Ljk1MzEyNSA3LC03Ljk4NDM3NSA2Ljk1NzAzMSwtOC4wMjM0MzggNi45Mjk2ODgsLTguMDY2NDA2IDYuOTIxODc1LC04LjEwOTM3NSA2Ljg3ODkwNiwtOC4yODUxNTYgNi44MjgxMjUsLTguNDM3NSA2Ljc2NTYyNSwtOC41NjI1IDYuNzAzMTI1LC04LjY4NzUgNi42MzI4MTIsLTguNzgxMjUgNi41NjI1LC04Ljg0Mzc1IDYuNDI1NzgxLC05LjAwNzgxMiA2LjI2OTUzMSwtOS4xMTcxODggNi4wOTM3NSwtOS4xNzE4NzUgNS45MjU3ODEsLTkuMjIyNjU2IDUuNzUsLTkuMjUgNS41NjI1LC05LjI1IEggMy42NTYyNSBjIC0wLjIzMDQ2OSwwIC0wLjM3MTA5NCwwLjA3NDIxOSAtMC40MjE4NzUsMC4yMTg3NSBDIDMuMTkxNDA2LC04Ljg4MjgxMiAzLjE2NDA2MiwtOC43MDcwMzEgMy4xNTYyNSwtOC41IGMgLTAuMDExNzE5LDAuMTg3NSAtMC4wMTU2MjUsMC40MjE4NzUgLTAuMDE1NjI1LDAuNzAzMTI1IDAsMC4yNzM0MzcgMCwwLjUzOTA2MyAwLDAuNzk2ODc1IDAsMC4yNSAwLDAuNTA3ODEyIDAsMC43NjU2MjUgMCwwLjI2MTcxOSAwLjAwMzkxLDAuNDgwNDY5IDAuMDE1NjI1LDAuNjU2MjUgMCwwLjA4NTkzNyAwLjAwMzkxLDAuMTY0MDYzIDAuMDE1NjI1LDAuMjM0Mzc1IDAuMDA3ODEsMC4wNjI1IDAuMDUwNzgxLDAuMDkzNzUgMC4xMjUsMC4wOTM3NSAwLjMyMDMxMywwIDAuNjQ0NTMxLC0wLjAwMzkxIDAuOTY4NzUsLTAuMDE1NjI1IDAuMzMyMDMxLC0wLjAxOTUzMSAwLjU5Mzc1LC0wLjAzMTI1IDAuNzgxMjUsLTAuMDMxMjUgMC4yMTg3NSwwIDAuNDA2MjUsLTAuMDU0Njg3IDAuNTYyNSwtMC4xNzE4NzUgMC4xNTYyNSwtMC4xMjUgMC4yNjk1MzEsLTAuMjY5NTMxIDAuMzQzNzUsLTAuNDM3NSAwLjAxOTUzMSwtMC4wMzkwNjIgMC4wNjI1LC0wLjA5Mzc1IDAuMTI1LC0wLjE1NjI1IDAuMDYyNSwtMC4wNzAzMTIgMC4xMDkzNzUsLTAuMTA5Mzc1IDAuMTQwNjI1LC0wLjEwOTM3NSAwLjAzOTA2MiwwIDAuMDg1OTM4LDAuMDI3MzQ0IDAuMTQwNjI1LDAuMDc4MTI1IDAuMDUwNzgxLDAuMDQyOTY5IDAuMDcwMzEzLDAuMTAxNTYyIDAuMDYyNSwwLjE3MTg3NSAtMC4wMTE3MTksMC4xNjc5NjkgLTAuMDIzNDM3LDAuMzIwMzEzIC0wLjAzMTI1LDAuNDUzMTI1IC0wLjAxMTcxOSwwLjEyNSAtMC4wMTU2MjUsMC4yNSAtMC4wMTU2MjUsMC4zNzUgMCwwLjE0ODQzOCAwLjAwMzkxLDAuMjk2ODc1IDAuMDE1NjI1LDAuNDUzMTI1IDAuMDA3ODEsMC4xNTYyNSAwLjAxOTUzMSwwLjM0Mzc1IDAuMDMxMjUsMC41NjI1IDAsMC4wNzQyMTkgLTAuMDExNzE5LDAuMTM2NzE5IC0wLjAzMTI1LDAuMTg3NSAtMC4wMTE3MTksMC4wNDI5NjkgLTAuMDQ2ODc1LDAuMDYyNSAtMC4xMDkzNzUsMC4wNjI1IC0wLjA5Mzc1LDAgLTAuMTcxODc1LC0wLjAzOTA2MyAtMC4yMzQzNzUsLTAuMTI1IEMgNS45OTIxODgsLTQuMDQ2ODc1IDUuOTU3MDMxLC00LjExNzE4OCA1LjkzNzUsLTQuMTcxODc1IDUuODYzMjgxLC00LjM5ODQzOCA1Ljc1NzgxMiwtNC41NTQ2ODggNS42MjUsLTQuNjQwNjI1IGMgLTAuMTM2NzE5LC0wLjA4MjAzMSAtMC4yNjU2MjUsLTAuMTI1IC0wLjM5MDYyNSwtMC4xMjUgLTAuMTI1LDAgLTAuMjUsMCAtMC4zNzUsMCAtMC4xMjUsLTAuMDA3ODEgLTAuMjUsLTAuMDE1NjI1IC0wLjM3NSwtMC4wMTU2MjUgLTAuMTY3OTY5LDAgLTAuMzM1OTM3LDAgLTAuNSwwIC0wLjE1NjI1LDAgLTAuMzEyNSwwLjAxMTcxOSAtMC40Njg3NSwwLjAzMTI1IEMgMy40MTAxNTYsLTQuNzM4MjgxIDMuMzIwMzEyLC00LjcwNzAzMSAzLjI1LC00LjY1NjI1IDMuMTg3NSwtNC42MDE1NjIgMy4xNTYyNSwtNC41MDc4MTIgMy4xNTYyNSwtNC4zNzUgYyAwLDAuNDYwOTM4IDAsMC45Mjk2ODggMCwxLjQwNjI1IEMgMy4xNjQwNjIsLTIuNSAzLjE3NTc4MSwtMi4wMTU2MjUgMy4xODc1LC0xLjUxNTYyNSAzLjIwNzAzMSwtMS4xOTE0MDYgMy4yODUxNTYsLTAuOTM3NSAzLjQyMTg3NSwtMC43NSAzLjU1NDY4OCwtMC41NjI1IDMuODEyNSwtMC40Mjk2ODggNC4xODc1LC0wLjM1OTM3NSBjIDAuMTY0MDYyLDAuMDMxMjUgMC4yODkwNjIsMC4wNzAzMTMgMC4zNzUsMC4xMDkzNzUgMC4wODIwMzEsMC4wNDI5NjkgMC4xMjUsMC4wOTM3NSAwLjEyNSwwLjE1NjI1IDAsMC4wNjI1IC0wLjA0Mjk2OSwwLjEwMTU2MjUgLTAuMTI1LDAuMTI1IEMgNC40NzY1NjIsMC4wNjI1IDQuMzc1LDAuMDc4MTI1IDQuMjUsMC4wNzgxMjUgMy45NzY1NjIsMC4wNzgxMjUgMy43Njk1MzEsMC4wNjY0MDYyIDMuNjI1LDAuMDQ2ODc1IDMuNDc2NTYyLDAuMDIzNDM3NSAzLjM0NzY1NiwwLjAwNzgxMjUgMy4yMzQzNzUsMCAzLjExNzE4OCwtMC4wMTk1MzEyIDIuOTY4NzUsLTAuMDMxMjUgMi43ODEyNSwtMC4wMzEyNSAyLjUzOTA2MiwtMC4wMzEyNSAyLjMyODEyNSwtMC4wMTk1MzEyIDIuMTQwNjI1LDAgYyAtMC4xODc1LDAuMDA3ODEyNSAtMC4zNzUsMC4wMjM0Mzc1IC0wLjU2MjUsMC4wNDY4NzUgLTAuMTg3NSwwLjAxOTUzMTIgLTAuNDE3OTY5LDAuMDMxMjUgLTAuNjg3NSwwLjAzMTI1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgzMiIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtMTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gNS41NjI1LDAuMTA5Mzc1IGMgLTAuMDkzNzUsMCAtMC4zMjAzMTIsLTAuMDExNzE4OCAtMC42NzE4NzUsLTAuMDMxMjUgQyA0LjU0Njg3NSwwLjA1NDY4NzUgNC4xNDg0MzgsMC4wMzUxNTYyIDMuNzAzMTI1LDAuMDE1NjI1IDMuMjY1NjI1LDAuMDAzOTA2MjUgMi44NDM3NSwwIDIuNDM3NSwwIDIuMjM4MjgxLDAgMi4wNzAzMTIsMC4wMDM5MDYyNSAxLjkzNzUsMC4wMTU2MjUgMS44MDA3ODEsMC4wMjM0Mzc1IDEuNjU2MjUsMC4wMzUxNTYyIDEuNSwwLjA0Njg3NSAxLjM1MTU2MiwwLjA2NjQwNjIgMS4xNDQ1MzEsMC4wNzgxMjUgMC44NzUsMC4wNzgxMjUgMC43MzgyODEsMC4wNzgxMjUgMC42Mjg5MDYsMC4wNjI1IDAuNTQ2ODc1LDAuMDMxMjUgMC40NzI2NTYsMCAwLjQzNzUsLTAuMDUwNzgxMiAwLjQzNzUsLTAuMTI1IGMgMCwtMC4wNzAzMTIgMC4wMzUxNTYsLTAuMTE3MTg4IDAuMTA5Mzc1LC0wLjE0MDYyNSAwLjA4MjAzMSwtMC4wMzEyNSAwLjIxMDkzNywtMC4wNjI1IDAuMzkwNjI1LC0wLjA5Mzc1IDAuMzc1LC0wLjA3MDMxMyAwLjYzMjgxMiwtMC4xODc1IDAuNzgxMjUsLTAuMzQzNzUgMC4xNDQ1MzEsLTAuMTU2MjUgMC4yMTg3NSwtMC40MTQwNjMgMC4yMTg3NSwtMC43ODEyNSB2IC02Ljc1IEMgMS45Mzc1LC04LjU5NzY1NiAxLjg2MzI4MSwtOC44NTE1NjIgMS43MTg3NSwtOSAxLjU3MDMxMiwtOS4xNDQ1MzEgMS4zMTI1LC05LjI1MzkwNiAwLjkzNzUsLTkuMzI4MTI1IDAuNzU3ODEyLC05LjM1OTM3NSAwLjYyODkwNiwtOS4zOTA2MjUgMC41NDY4NzUsLTkuNDIxODc1IDAuNDcyNjU2LC05LjQ2MDkzOCAwLjQzNzUsLTkuNTE5NTMxIDAuNDM3NSwtOS41OTM3NSBjIDAsLTAuMDcwMzEyIDAuMDM1MTU2LC0wLjEyNSAwLjEwOTM3NSwtMC4xNTYyNSAwLjA4MjAzMSwtMC4wMzEyNSAwLjE5MTQwNiwtMC4wNDY4NzUgMC4zMjgxMjUsLTAuMDQ2ODc1IDAuMjU3ODEyLDAgMC40NjA5MzgsMC4wMDc4MSAwLjYwOTM3NSwwLjAxNTYyNSAwLjE1NjI1LDAgMC4zMDQ2ODcsMC4wMDc4MSAwLjQ1MzEyNSwwLjAxNTYyNSAwLjE1NjI1LDAgMC4zNTE1NjIsMCAwLjU5Mzc1LDAgMC4xNjQwNjIsMCAwLjM2NzE4OCwtMC4wMDM5MSAwLjYwOTM3NSwtMC4wMTU2MjUgMC4yNSwtMC4wMDc4MSAwLjUwMzkwNiwtMC4wMjM0MzggMC43NjU2MjUsLTAuMDQ2ODc1IEMgNC4xNzU3ODEsLTkuODQ3NjU2IDQuNDE0MDYyLC05Ljg2MzI4MSA0LjYyNSwtOS44NzUgNC44NDM3NSwtOS44ODI4MTIgNSwtOS44OTA2MjUgNS4wOTM3NSwtOS44OTA2MjUgYyAxLjAxOTUzMSwwIDEuODkwNjI1LDAuMTI1IDIuNjA5Mzc1LDAuMzc1IEMgOC40Mjk2ODgsLTkuMjczNDM4IDkuMDE5NTMxLC04LjkzNzUgOS40Njg3NSwtOC41IGMgMC40NDUzMTIsMC40Mzc1IDAuNzczNDM4LDAuOTQ1MzEyIDAuOTg0Mzc1LDEuNTE1NjI1IDAuMjE4NzUsMC41NzQyMTkgMC4zMjgxMjUsMS4xOTUzMTMgMC4zMjgxMjUsMS44NTkzNzUgMCwwLjcxODc1IC0wLjEzNjcxOSwxLjM5ODQzOCAtMC40MDYyNSwyLjAzMTI1IC0wLjI3MzQzOCwwLjYyNSAtMC42NDg0MzgsMS4xODM1OTQgLTEuMTI1LDEuNjcxODc1IC0wLjQ4MDQ2OSwwLjQ4MDQ2OSAtMS4wMzkwNjIsMC44NTU0NjkgLTEuNjcxODc1LDEuMTI1IC0wLjYyNSwwLjI3MzQzNzUgLTEuMjk2ODc1LDAuNDA2MjUgLTIuMDE1NjI1LDAuNDA2MjUgeiBtIC0wLjE3MTg3NSwtMC41MzEyNSBjIDAuNzgxMjUsMCAxLjQ2ODc1LC0wLjE4NzUgMi4wNjI1LC0wLjU2MjUgMC42MDE1NjMsLTAuMzgyODEzIDEuMDcwMzEzLC0wLjkxMDE1NiAxLjQwNjI1LC0xLjU3ODEyNSAwLjMzMjAzMSwtMC42NjQwNjIgMC41LC0xLjQzNzUgMC41LC0yLjMxMjUgQyA5LjM1OTM3NSwtNS41OTM3NSA5LjIzODI4MSwtNi4yMzQzNzUgOSwtNi43OTY4NzUgOC43NTc4MTIsLTcuMzY3MTg4IDguNDM3NSwtNy44NDc2NTYgOC4wMzEyNSwtOC4yMzQzNzUgNy42MzI4MTIsLTguNjE3MTg4IDcuMTg3NSwtOC45MTAxNTYgNi42ODc1LC05LjEwOTM3NSA2LjE4NzUsLTkuMzE2NDA2IDUuNjc5Njg4LC05LjQyMTg3NSA1LjE3MTg3NSwtOS40MjE4NzUgNC43NDIxODgsLTkuNDIxODc1IDQuMzc1LC05LjQwNjI1IDQuMDYyNSwtOS4zNzUgMy43NTc4MTIsLTkuMzUxNTYyIDMuNTMxMjUsLTkuMjczNDM4IDMuMzc1LC05LjE0MDYyNSAzLjIxODc1LC05LjAxNTYyNSAzLjE0MDYyNSwtOC44MDA3ODEgMy4xNDA2MjUsLTguNSB2IDYuNjg3NSBjIDAsMC4zOTg0MzggMC4xMDkzNzUsMC42OTkyMTkgMC4zMjgxMjUsMC45MDYyNSAwLjIxODc1LDAuMTk5MjE5IDAuNSwwLjMyODEyNSAwLjg0Mzc1LDAuMzkwNjI1IDAuMzQzNzUsMC4wNjI1IDAuNzAzMTI1LDAuMDkzNzUgMS4wNzgxMjUsMC4wOTM3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMzUiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgPC9nPgogIDwvZGVmcz4KICA8ZwogICAgIGlkPSJnMTMyOSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTIuOTk2MDI1LC03MS45OTk5MzUpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDMyOS4zMTI1LDE5OC43NjE3MiBoIDY0LjM1OTM3IFYgMTcwLjQxNDA2IEggMzI5LjMxMjUgWiBtIDAsMCIKICAgICAgIGlkPSJwYXRoNDQiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSIzMzIuODEyMDEiCiAgICAgICB5PSIxODcuNTU4IgogICAgICAgaWQ9InVzZTQ2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0yIgogICAgICAgeD0iMzQzLjE5MTk5IgogICAgICAgeT0iMTg3LjU1OCIKICAgICAgIGlkPSJ1c2U0OCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMiIKICAgICAgIHg9IjM0OS43MTcwMSIKICAgICAgIHk9IjE4Ny41NTgiCiAgICAgICBpZD0idXNlNTAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTMiCiAgICAgICB4PSIzNTYuMjQyIgogICAgICAgeT0iMTg3LjU1OCIKICAgICAgIGlkPSJ1c2U1MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNCIKICAgICAgIHg9IjM2MS4yNTIwMSIKICAgICAgIHk9IjE4Ny41NTgiCiAgICAgICBpZD0idXNlNTQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTIiCiAgICAgICB4PSIzNjcuMTAxOTkiCiAgICAgICB5PSIxODcuNTU4IgogICAgICAgaWQ9InVzZTU2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC01IgogICAgICAgeD0iMzczLjYyNzAxIgogICAgICAgeT0iMTg3LjU1OCIKICAgICAgIGlkPSJ1c2U1OCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNiIKICAgICAgIHg9IjM3OS42MTIiCiAgICAgICB5PSIxODcuNTU4IgogICAgICAgaWQ9InVzZTYwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC00IgogICAgICAgeD0iMzg0LjMyMTk5IgogICAgICAgeT0iMTg3LjU1OCIKICAgICAgIGlkPSJ1c2U2MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojZWVlNmQ0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDI4OS40Mjk2OSwxODQuNTg5ODQgYyAwLC03LjE2Nzk3IC01LjgwODYsLTEyLjk4MDQ3IC0xMi45NzY1NywtMTIuOTgwNDcgLTcuMTY3OTYsMCAtMTIuOTc2NTYsNS44MTI1IC0xMi45NzY1NiwxMi45ODA0NyAwLDcuMTY0MDcgNS44MDg2LDEyLjk3NjU3IDEyLjk3NjU2LDEyLjk3NjU3IDcuMTY3OTcsMCAxMi45NzY1NywtNS44MTI1IDEyLjk3NjU3LC0xMi45NzY1NyB6IG0gMCwwIgogICAgICAgaWQ9InBhdGg2NiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMSIKICAgICAgIHg9IjI3MS4yNjE5OSIKICAgICAgIHk9IjE4OS42OTYiCiAgICAgICBpZD0idXNlNjgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6I2VlZTZkNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA1NzIuODk4NDQsODUuMzc1IGMgMCwtNy4xNjc5NyAtNS44MTI1LC0xMi45NzY1NiAtMTIuOTc2NTcsLTEyLjk3NjU2IC03LjE2Nzk2LDAgLTEyLjk3NjU2LDUuODA4NTkgLTEyLjk3NjU2LDEyLjk3NjU2IDAsNy4xNjc5NjkgNS44MDg2LDEyLjk3NjU2MyAxMi45NzY1NiwxMi45NzY1NjMgNy4xNjQwNywwIDEyLjk3NjU3LC01LjgwODU5NCAxMi45NzY1NywtMTIuOTc2NTYzIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDcyIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0xIgogICAgICAgeD0iNTU0LjcyOTk4IgogICAgICAgeT0iOTAuNDgyMDAyIgogICAgICAgaWQ9InVzZTc0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNTcyLjg3NSwxMTMuNzIyNjYgYyAwLC03LjE1NjI1IC01LjgwMDc4LC0xMi45NTMxMyAtMTIuOTUzMTMsLTEyLjk1MzEzIC03LjE1NjI1LDAgLTEyLjk1MzEyLDUuNzk2ODggLTEyLjk1MzEyLDEyLjk1MzEzIDAsNy4xNTIzNCA1Ljc5Njg3LDEyLjk1MzEyIDEyLjk1MzEyLDEyLjk1MzEyIDcuMTUyMzUsMCAxMi45NTMxMywtNS44MDA3OCAxMi45NTMxMywtMTIuOTUzMTIgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoNzgiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTciCiAgICAgICB4PSI1NTQuNTk0OTciCiAgICAgICB5PSIxMTguNTgxIgogICAgICAgaWQ9InVzZTgwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNlZWU2ZDQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNTYxLjU1ODU5LDE0Mi4wNjY0MSBjIDAsLTcuMTY0MDcgLTUuODA4NTksLTEyLjk3NjU3IC0xMi45NzY1NiwtMTIuOTc2NTcgLTcuMTY3OTcsMCAtMTIuOTc2NTYsNS44MTI1IC0xMi45NzY1NiwxMi45NzY1NyAwLDcuMTY3OTYgNS44MDg1OSwxMi45NzY1NiAxMi45NzY1NiwxMi45NzY1NiA3LjE2Nzk3LDAgMTIuOTc2NTYsLTUuODA4NiAxMi45NzY1NiwtMTIuOTc2NTYgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoODQiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSI1NDMuMzkyMDMiCiAgICAgICB5PSIxNDcuMTc1IgogICAgICAgaWQ9InVzZTg2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNTcyLjE3MTg3LDE3MC40MTQwNiBjIDAsLTYuNzY1NjIgLTUuNDg0MzcsLTEyLjI1MzkgLTEyLjI1LC0xMi4yNTM5IC02Ljc2OTUzLDAgLTEyLjI1MzksNS40ODgyOCAtMTIuMjUzOSwxMi4yNTM5IDAsNi43NjU2MyA1LjQ4NDM3LDEyLjI1MzkxIDEyLjI1MzksMTIuMjUzOTEgNi43NjU2MywwIDEyLjI1LC01LjQ4ODI4IDEyLjI1LC0xMi4yNTM5MSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGg5MCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtOCIKICAgICAgIHg9IjU1NS41MTgwMSIKICAgICAgIHk9IjE3NS4zMDQ5OSIKICAgICAgIGlkPSJ1c2U5MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDU3Mi4wMDM5MSwxOTguNzYxNzIgYyAwLC02LjY3MTg4IC01LjQxMDE2LC0xMi4wODIwMyAtMTIuMDgyMDQsLTEyLjA4MjAzIC02LjY3NTc4LDAgLTEyLjA4MjAzLDUuNDEwMTUgLTEyLjA4MjAzLDEyLjA4MjAzIDAsNi42NzE4NyA1LjQwNjI1LDEyLjA4MjAzIDEyLjA4MjAzLDEyLjA4MjAzIDYuNjcxODgsMCAxMi4wODIwNCwtNS40MTAxNiAxMi4wODIwNCwtMTIuMDgyMDMgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoOTYiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTkiCiAgICAgICB4PSI1NTUuNjkiCiAgICAgICB5PSIyMDMuNjIxIgogICAgICAgaWQ9InVzZTk4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNTYwLjQ4NDM3LDIyNy4xMDkzNyBjIDAsLTYuNTc0MjEgLTUuMzI4MTIsLTExLjkwMjM0IC0xMS45MDIzNCwtMTEuOTAyMzQgLTYuNTc0MjIsMCAtMTEuOTAyMzQsNS4zMjgxMyAtMTEuOTAyMzQsMTEuOTAyMzQgMCw2LjU3MDMyIDUuMzI4MTIsMTEuODk4NDQgMTEuOTAyMzQsMTEuODk4NDQgNi41NzQyMiwwIDExLjkwMjM0LC01LjMyODEyIDExLjkwMjM0LC0xMS44OTg0NCB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxMDIiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEwIgogICAgICAgeD0iNTQ0Ljc0MiIKICAgICAgIHk9IjIzMi4wMjEiCiAgICAgICBpZD0idXNlMTA0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNlZWU2ZDQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNTcyLjg5ODQ0LDI2OS42Mjg5MSBjIDAsLTcuMTY3OTcgLTUuODEyNSwtMTIuOTc2NTcgLTEyLjk3NjU3LC0xMi45NzY1NyAtNy4xNjc5NiwwIC0xMi45NzY1Niw1LjgwODYgLTEyLjk3NjU2LDEyLjk3NjU3IDAsNy4xNjc5NiA1LjgwODYsMTIuOTc2NTYgMTIuOTc2NTYsMTIuOTc2NTYgNy4xNjQwNywwIDEyLjk3NjU3LC01LjgwODYgMTIuOTc2NTcsLTEyLjk3NjU2IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDEwOCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMSIKICAgICAgIHg9IjU1NC43Mjk5OCIKICAgICAgIHk9IjI3NC43MzU5OSIKICAgICAgIGlkPSJ1c2UxMTAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0NTguNzg1MTYsMTQyLjA2NjQxIGMgMCwtNi43NjU2MyAtNS40ODQzOCwtMTIuMjUgLTEyLjI1MzkxLC0xMi4yNSAtNi43NjU2MywwIC0xMi4yNSw1LjQ4NDM3IC0xMi4yNSwxMi4yNSAwLDYuNzY5NTMgNS40ODQzNywxMi4yNTM5IDEyLjI1LDEyLjI1MzkgNi43Njk1MywwIDEyLjI1MzkxLC01LjQ4NDM3IDEyLjI1MzkxLC0xMi4yNTM5IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDExNCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtOCIKICAgICAgIHg9IjQ0Mi4xMyIKICAgICAgIHk9IjE0Ni45NTc5OSIKICAgICAgIGlkPSJ1c2UxMTYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0NTkuNDg0MzcsMTg0LjU4OTg0IGMgMCwtNy4xNTYyNSAtNS43OTY4NywtMTIuOTUzMTIgLTEyLjk1MzEyLC0xMi45NTMxMiAtNy4xNTIzNCwwIC0xMi45NTMxMyw1Ljc5Njg3IC0xMi45NTMxMywxMi45NTMxMiAwLDcuMTUyMzUgNS44MDA3OSwxMi45NTMxMyAxMi45NTMxMywxMi45NTMxMyA3LjE1NjI1LDAgMTIuOTUzMTIsLTUuODAwNzggMTIuOTUzMTIsLTEyLjk1MzEzIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDEyMCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNyIKICAgICAgIHg9IjQ0MS4yMDgwMSIKICAgICAgIHk9IjE4OS40NDgiCiAgICAgICBpZD0idXNlMTIyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDU5LjY2MDE2LDIyNy4xMDkzNyBjIDAsLTcuMjUgLTUuODc4OTEsLTEzLjEyODkgLTEzLjEyODkxLC0xMy4xMjg5IC03LjI1LDAgLTEzLjEyNSw1Ljg3ODkgLTEzLjEyNSwxMy4xMjg5IDAsNy4yNSA1Ljg3NSwxMy4xMjUgMTMuMTI1LDEzLjEyNSA3LjI1LDAgMTMuMTI4OTEsLTUuODc1IDEzLjEyODkxLC0xMy4xMjUgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTI2IiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0xMSIKICAgICAgIHg9IjQ0MC44Nzc5OSIKICAgICAgIHk9IjIzMS45OTgiCiAgICAgICBpZD0idXNlMTI4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDg5LjA1NDY5LDEyNy44OTQ1MyBoIDI4LjM0Mzc1IFYgOTkuNTQ2ODc1IGggLTI4LjM0Mzc1IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDEzMiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQ4OS4wNTQ2OSwxOTguNzYxNzIgaCAyOC4zNDM3NSB2IC0yOC4zNDc2NiBoIC0yOC4zNDM3NSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxMzQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0ODkuMDU0NjksMjY5LjYyODkxIGggMjguMzQzNzUgdiAtMjguMzQ3NjYgaCAtMjguMzQzNzUgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTM2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjE3LjQ4ODI4LDIxMi45MzM1OSBjIDAsLTYuNTcwMzEgLTUuMzMyMDMsLTExLjg5ODQzIC0xMS45MDIzNCwtMTEuODk4NDMgLTYuNTc0MjIsMCAtMTEuOTAyMzUsNS4zMjgxMiAtMTEuOTAyMzUsMTEuODk4NDMgMCw2LjU3NDIyIDUuMzI4MTMsMTEuOTAyMzUgMTEuOTAyMzUsMTEuOTAyMzUgNi41NzAzMSwwIDExLjkwMjM0LC01LjMyODEzIDExLjkwMjM0LC0xMS45MDIzNSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxMzgiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEwIgogICAgICAgeD0iMjAxLjc0NSIKICAgICAgIHk9IjIxNy44NDciCiAgICAgICBpZD0idXNlMTQwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjA0LjM2MzI4LDE3MC40MTQwNiBjIDAsLTcuMTUyMzQgLTUuNzk2ODcsLTEyLjk1MzEyIC0xMi45NTMxMiwtMTIuOTUzMTIgLTcuMTUyMzUsMCAtMTIuOTUzMTMsNS44MDA3OCAtMTIuOTUzMTMsMTIuOTUzMTIgMCw3LjE1NjI1IDUuODAwNzgsMTIuOTUzMTMgMTIuOTUzMTMsMTIuOTUzMTMgNy4xNTYyNSwwIDEyLjk1MzEyLC01Ljc5Njg4IDEyLjk1MzEyLC0xMi45NTMxMyB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNDQiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTciCiAgICAgICB4PSIxODYuMDg3MDEiCiAgICAgICB5PSIxNzUuMjc0OTkiCiAgICAgICBpZD0idXNlMTQ2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTc1LjMxNjQxLDExMy43MjI2NiBjIDAsLTYuNzY5NTMgLTUuNDg0MzgsLTEyLjI1MzkxIC0xMi4yNSwtMTIuMjUzOTEgLTYuNzY5NTMsMCAtMTIuMjUzOTEsNS40ODQzOCAtMTIuMjUzOTEsMTIuMjUzOTEgMCw2Ljc2NTYyIDUuNDg0MzgsMTIuMjUgMTIuMjUzOTEsMTIuMjUgNi43NjU2MiwwIDEyLjI1LC01LjQ4NDM4IDEyLjI1LC0xMi4yNSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNTAiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTgiCiAgICAgICB4PSIxNTguNjYyIgogICAgICAgeT0iMTE4LjYxMSIKICAgICAgIGlkPSJ1c2UxNTIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6I2VlZTZkNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAxMTkuMzQ3NjYsMTU2LjI0MjE5IGMgMCwtNy4xNjc5NyAtNS44MDg2LC0xMi45NzY1NyAtMTIuOTc2NTcsLTEyLjk3NjU3IC03LjE2Nzk2LDAgLTEyLjk3NjU2LDUuODA4NiAtMTIuOTc2NTYsMTIuOTc2NTcgMCw3LjE2Nzk3IDUuODA4NiwxMi45NzY1NiAxMi45NzY1NiwxMi45NzY1NiA3LjE2Nzk3LDAgMTIuOTc2NTcsLTUuODA4NTkgMTIuOTc2NTcsLTEyLjk3NjU2IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDE1NiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMSIKICAgICAgIHg9IjEwMS4xODEiCiAgICAgICB5PSIxNjEuMzQ5IgogICAgICAgaWQ9InVzZTE1OCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDEyOC4wMDM5MSwyMTIuOTMzNTkgYyAwLC03LjI1IC01Ljg3ODkxLC0xMy4xMjUgLTEzLjEyODkxLC0xMy4xMjUgLTcuMjUsMCAtMTMuMTI1LDUuODc1IC0xMy4xMjUsMTMuMTI1IDAsNy4yNSA1Ljg3NSwxMy4xMjg5MSAxMy4xMjUsMTMuMTI4OTEgNy4yNSwwIDEzLjEyODkxLC01Ljg3ODkxIDEzLjEyODkxLC0xMy4xMjg5MSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNjIiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTExIgogICAgICAgeD0iMTA5LjIyIgogICAgICAgeT0iMjE3LjgyNSIKICAgICAgIGlkPSJ1c2UxNjQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAxNjAuOTcyNjYsMjQxLjI4MTI1IGMgMCwtNi42NzE4OCAtNS40MDYyNSwtMTIuMDgyMDMgLTEyLjA4MjAzLC0xMi4wODIwMyAtNi42NzE4OCwwIC0xMi4wODIwNCw1LjQxMDE1IC0xMi4wODIwNCwxMi4wODIwMyAwLDYuNjcxODcgNS40MTAxNiwxMi4wODIwMyAxMi4wODIwNCwxMi4wODIwMyA2LjY3NTc4LDAgMTIuMDgyMDMsLTUuNDEwMTYgMTIuMDgyMDMsLTEyLjA4MjAzIHogbSAwLDAiCiAgICAgICBpZD0icGF0aDE2OCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtOSIKICAgICAgIHg9IjE0NC42NjEiCiAgICAgICB5PSIyNDYuMTQyIgogICAgICAgaWQ9InVzZTE3MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDExNy4wNzAzMSwxNDguMjE0ODQgMzUuODc1LC0yNi45MDIzNCBtIDE1Ljc3NzM1LDMuNzIyNjYgMTYuNzE4NzUsMzMuNDM3NSBtIDEwLjE5MTQsMjQuNjA5MzcgNi4wNjI1LDE4LjE4MzU5IG0gLTcuMTA5MzcsMTcuMTY3OTcgLTM0LjUzMTI1LDE3LjI2NTYzIG0gLTQuNzQyMTksLTUuMTIxMSAyOS4yMzA0NywtNDguNzE0ODQgbSAtNi4zMDA3OCwtMTMuNjQ0NTMgLTU4LjY3OTY5LC05Ljc3NzM0IG0gLTExLjIwNzAzLDExLjAyNzM0IDQuNTE1NjIsMzAuMDg5ODQiCiAgICAgICBpZD0icGF0aDE3NCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDMyOC45MTQwNiwxODQuNTg5ODQgSCAyOTIuNDE3OTciCiAgICAgICBpZD0icGF0aDE3NiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAyODkuODI4MTIsMTg0LjU4OTg0IDQuMTQ0NTQsMi4wNzAzMiAtMS41NTQ2OSwtMi4wNzAzMiAxLjU1NDY5LC0yLjA3NDIyIgogICAgICAgaWQ9InBhdGgxNzgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0ODguNjU2MjUsMTIxLjAwMzkxIC0yOC40OTIxOSwxNC4yNSIKICAgICAgIGlkPSJwYXRoMTgwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQ1Ny44NDc2NiwxMzYuNDEwMTYgaCA0LjYzMjgxIGwgLTIuMzE2NDEsLTEuMTU2MjUgMC40NjQ4NSwtMi41NTA3OSIKICAgICAgIGlkPSJwYXRoMTgyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNDg4LjY1NjI1LDE4NC41ODk4NCBIIDQ2Mi40NzY1NiIKICAgICAgIGlkPSJwYXRoMTg0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQ1OS44ODI4MSwxODQuNTg5ODQgNC4xNDQ1MywyLjA3MDMyIC0xLjU1MDc4LC0yLjA3MDMyIDEuNTUwNzgsLTIuMDc0MjIiCiAgICAgICBpZD0icGF0aDE4NiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDQ4OC42NTYyNSwyNDguMTY3OTcgNDYwLjk0NTMxLDIzNC4zMTY0MSIKICAgICAgIGlkPSJwYXRoMTg4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQ1OC42Mjg5MSwyMzMuMTU2MjUgMi43ODEyNSwzLjcwNzAzIC0wLjQ2NDg1LC0yLjU0Njg3IDIuMzE2NDEsLTEuMTYwMTYiCiAgICAgICBpZD0icGF0aDE5MCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1kYXNoYXJyYXk6Mi45ODg4MywgMi45ODg4MztzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0MzUuMjE4NzUsMTQ3LjcyMjY2IC00Mi4yNzczNCwyMS4xMzY3MSIKICAgICAgIGlkPSJwYXRoMTkyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDM5MC42MjUsMTcwLjAxNTYyIGggNC42MzI4MSBsIC0yLjMxNjQsLTEuMTU2MjUgMC40NjQ4NCwtMi41NTA3OCIKICAgICAgIGlkPSJwYXRoMTk0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheToyLjk4ODgzLCAyLjk4ODgzO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDQzMy4xNzk2OSwxODQuNTg5ODQgSCAzOTYuNjYwMTYiCiAgICAgICBpZD0icGF0aDE5NiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAzOTQuMDcwMzEsMTg0LjU4OTg0IDQuMTQ0NTMsMi4wNzAzMiAtMS41NTQ2OCwtMi4wNzAzMiAxLjU1NDY4LC0yLjA3NDIyIgogICAgICAgaWQ9InBhdGgxOTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5OjIuOTg4ODMsIDIuOTg4ODM7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNDM0LjQzNzUsMjIxLjA2MjUgMzkyLjk0MTQxLDIwMC4zMTY0MSIKICAgICAgIGlkPSJwYXRoMjAwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDM5MC42MjUsMTk5LjE2MDE2IDIuNzgxMjUsMy43MDcwMyAtMC40NjQ4NCwtMi41NTA3OCAyLjMxNjQsLTEuMTU2MjUiCiAgICAgICBpZD0icGF0aDIwMiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1kYXNoYXJyYXk6Mi45ODg4MywgMi45ODg4MztzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSA1NDcuOTU3MDMsOTEuMzU1NDY5IDUyMC4xMTMyOCwxMDUuMjgxMjUiCiAgICAgICBpZD0icGF0aDIwNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSA1MTcuNzk2ODcsMTA2LjQzNzUgaCA0LjYzNjcyIGwgLTIuMzIwMzEsLTEuMTU2MjUgMC40NjQ4NCwtMi41NTA3OCIKICAgICAgIGlkPSJwYXRoMjA2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheToyLjk4ODgzLCAyLjk4ODgzO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDU0Ni41NzAzMSwxMTMuNzIyNjYgSCA1MjAuMzkwNjIiCiAgICAgICBpZD0icGF0aDIwOCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSA1MTcuNzk2ODcsMTEzLjcyMjY2IDQuMTQ0NTQsMi4wNzAzMSAtMS41NTA3OSwtMi4wNzAzMSAxLjU1MDc5LC0yLjA3NDIyIgogICAgICAgaWQ9InBhdGgyMTAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5OjIuOTg4ODMsIDIuOTg4ODM7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNTM4LjgyNDIyLDE1MS4yMTQ4NCA1MTkuNjg3NSwxNjkuMTYwMTYiCiAgICAgICBpZD0icGF0aDIxMiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSA1MTcuNzk2ODcsMTcwLjkzMzU5IDQuNDQxNDEsLTEuMzI0MjIgLTIuNTUwNzgsLTAuNDQ5MjEgLTAuMjgxMjUsLTIuNTc0MjIiCiAgICAgICBpZD0icGF0aDIxNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1kYXNoYXJyYXk6Mi45ODg4MywgMi45ODg4MztzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA1NDcuNjQ4NDQsMTczLjQ4NDM3IC0yNy4zMzU5NCw2LjgzNTk0IgogICAgICAgaWQ9InBhdGgyMTYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gNTE3Ljc5Njg3LDE4MC45NDUzMSA0LjUyMzQ0LDEuMDA3ODEgLTIuMDA3ODEsLTEuNjMyODEgMS4wMDM5MSwtMi4zODY3MiIKICAgICAgIGlkPSJwYXRoMjE4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheToyLjk4ODgzLCAyLjk4ODgzO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDU0Ny44MTI1LDE5NS43MzQzNyAtMjcuNSwtNi44Nzg5IgogICAgICAgaWQ9InBhdGgyMjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gNTE3Ljc5Njg3LDE4OC4yMzA0NyAzLjUxOTU0LDMuMDE1NjIgLTEuMDAzOTEsLTIuMzkwNjIgMi4wMDc4MSwtMS42MzI4MSIKICAgICAgIGlkPSJwYXRoMjIyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheToyLjk4ODgzLCAyLjk4ODgzO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDUzOS42MDkzNywyMTguNjk1MzEgNTE5LjY4NzUsMjAwLjAxNTYyIgogICAgICAgaWQ9InBhdGgyMjQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gNTE3Ljc5Njg3LDE5OC4yNDIxOSAxLjYwOTM4LDQuMzQ3NjUgMC4yODEyNSwtMi41NzQyMiAyLjU1MDc4LC0wLjQ0OTIxIgogICAgICAgaWQ9InBhdGgyMjYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5OjIuOTg4ODMsIDIuOTg4ODM7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNTQ2Ljk0NTMxLDI2Ni4zODI4MSA1MjAuMzEyNSwyNTkuNzIyNjYiCiAgICAgICBpZD0icGF0aDIyOCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSA1MTcuNzk2ODcsMjU5LjA5NzY2IDMuNTE5NTQsMy4wMTU2MiAtMS4wMDM5MSwtMi4zOTA2MiAyLjAwNzgxLC0xLjYzMjgyIgogICAgICAgaWQ9InBhdGgyMzAiIC8+CiAgPC9nPgo8L3N2Zz4K" class="center width80 top10">
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="118" class="slide " data-line="118" data-h="3" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>GNN 的基本形式</h5></div></div>
<p>最早版本的 GNN：</p>
<p>

$$
\begin{align*}
    \hv_u^\sup{k} = \sigma \left( \Wv_\self^\sup{k} ~ \hv_u^\sup{k-1} + \Wv_\neigh^\sup{k} \sum_{v \in \Ncal(u)} \hv_v^\sup{k-1} + \bv^\sup{k} \right)
\end{align*}
$$
</p>

<ul>
<li><span class="mathjax-exps">$\Wv_\self^\sup{k}$</span>、<span class="mathjax-exps">$\Wv_\neigh^\sup{k}$</span>、<span class="mathjax-exps">$\bv^\sup{k}$</span>是可训练的参数，偏置<span class="mathjax-exps">$\bv^\sup{k}$</span>通常可以省略</li>
<li><span class="mathjax-exps">$\sigma$</span>是逐元素的非线性变换，例如之前介绍过的各种激活函数</li>
</ul>
<br>
<p>用消息传递框架表示：</p>
<ul>
<li><span class="mathjax-exps">$\aggregate ( \{ \hv_v \mid \forall v \in \Ncal(u) \} ) = \mv_{\Ncal(u)} = \class{blue}{\sum_{v \in \Ncal(u)} \hv_v}$</span>，注意求和是点序无关的</li>
<li><span class="mathjax-exps">$\update ( \hv_u, \mv_{\Ncal(u)} ) = \sigma ( \Wv_\self ~ \hv_u + \Wv_\neigh ~ \mv_{\Ncal(u)} + \bv)$</span></li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="146" class="slide " data-line="146" data-h="3" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>GNN 的基本形式</h5></div></div>
<p>记<span class="mathjax-exps">$\Hv^\sup{k} = [\hv_1^\sup{k}, \ldots, \hv_{|\Vcal|}^\sup{k}]$</span></p>
<p>GNN 的基本形式的矩阵表示：</p>
<p>

$$
\begin{align*}
    \Hv^\sup{k} = \sigma ( \Wv_\self^\sup{k} ~ \Hv^\sup{k-1} + \Wv_\neigh^\sup{k} \Hv^\sup{k-1} \Av )
\end{align*}
$$
</p>

<br>
<p>添加自指向环，将显式的<span class="mathjax-exps">$\update(\cdot)$</span>隐藏于<span class="mathjax-exps">$\aggregate(\cdot)$</span>之中</p>
<p>

$$
\begin{align*}
    \hv_u^\sup{k} &amp; = \aggregate^\sup{k} ( \{ \hv_v^\sup{k} \mid \forall v \in \Ncal(u) \class{blue}{\cup \{u\}} \} ) \\
    \Hv^\sup{k} &amp; = \sigma (\Wv^\sup{k} \Hv^\sup{k-1} (\Av \class{blue}{+ \Iv}))
\end{align*}
$$
</p>

<ul>
<li>优点：共享<span class="mathjax-exps">$\Wv_\self$</span>和<span class="mathjax-exps">$\Wv_\neigh$</span>，可以避免过拟合</li>
<li>缺点：<span class="mathjax-exps">$\aggregate(\cdot)$</span>要求平移等价性，这样无法区分自身的信息和邻居的信息</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section data-notes="" lineno="184" class="slide " data-line="184" data-h="4" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>GNN 的各种魔改</h5></div></div>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="348pt" height="334pt" viewBox="0.00 0.00 347.55 334.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 330)">
<title>g</title>
<polygon fill="#fdf6e3" stroke="transparent" points="-4,4 -4,-330 343.5504,-330 343.5504,4 -4,4"></polygon>
<!-- 图神经网络 -->
<g id="node1" class="node">
<title>图神经网络</title>
<text text-anchor="middle" x="50" y="-143.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">图神经网络</text>
</g>
<!-- 汇聚 -->
<g id="node2" class="node">
<title>汇聚</title>
<text text-anchor="middle" x="170" y="-201.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">汇聚</text>
</g>
<!-- 图神经网络&#45;&gt;汇聚 -->
<g id="edge1" class="edge">
<title>图神经网络-&gt;汇聚</title>
<path fill="none" stroke="#586e75" d="M87.311,-166.0336C103.5223,-173.8691 122.3251,-182.9571 137.9009,-190.4854"></path>
<polygon fill="#586e75" stroke="#586e75" points="142.6247,-192.7686 137.1438,-192.6185 140.3738,-191.6806 138.1229,-190.5927 138.1229,-190.5927 138.1229,-190.5927 140.3738,-191.6806 139.1021,-188.5669 142.6247,-192.7686 142.6247,-192.7686"></polygon>
</g>
<!-- 更新 -->
<g id="node3" class="node">
<title>更新</title>
<text text-anchor="middle" x="170" y="-114.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">更新</text>
</g>
<!-- 图神经网络&#45;&gt;更新 -->
<g id="edge2" class="edge">
<title>图神经网络-&gt;更新</title>
<path fill="none" stroke="#586e75" d="M100.1955,-135.8694C113.0084,-132.773 126.4343,-129.5284 138.0503,-126.7212"></path>
<polygon fill="#586e75" stroke="#586e75" points="142.9107,-125.5466 138.5791,-128.9082 140.4806,-126.1339 138.0506,-126.7212 138.0506,-126.7212 138.0506,-126.7212 140.4806,-126.1339 137.522,-124.5341 142.9107,-125.5466 142.9107,-125.5466"></polygon>
</g>
<!-- 归一化 -->
<g id="node4" class="node">
<title>归一化</title>
<text text-anchor="middle" x="289.7752" y="-303.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">归一化</text>
</g>
<!-- 汇聚&#45;&gt;归一化 -->
<g id="edge3" class="edge">
<title>汇聚-&gt;归一化</title>
<path fill="none" stroke="#586e75" d="M184.889,-224.1803C198.2841,-239.8503 219.03,-262.49 240,-279 243.9487,-282.1088 248.265,-285.1146 252.6525,-287.9379"></path>
<polygon fill="#586e75" stroke="#586e75" points="257.0527,-290.6975 251.6213,-289.9471 254.9347,-289.3692 252.8168,-288.0409 252.8168,-288.0409 252.8168,-288.0409 254.9347,-289.3692 254.0122,-286.1347 257.0527,-290.6975 257.0527,-290.6975"></polygon>
</g>
<!-- 集合汇聚 -->
<g id="node5" class="node">
<title>集合汇聚</title>
<text text-anchor="middle" x="289.7752" y="-245.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">集合汇聚</text>
</g>
<!-- 汇聚&#45;&gt;集合汇聚 -->
<g id="edge4" class="edge">
<title>汇聚-&gt;集合汇聚</title>
<path fill="none" stroke="#586e75" d="M197.1788,-215.9843C211.065,-221.0854 228.3355,-227.4298 244.1866,-233.2528"></path>
<polygon fill="#586e75" stroke="#586e75" points="249.055,-235.0413 243.5858,-235.4291 246.7084,-234.1792 244.3617,-233.3171 244.3617,-233.3171 244.3617,-233.3171 246.7084,-234.1792 245.1376,-231.2051 249.055,-235.0413 249.055,-235.0413"></polygon>
</g>
<!-- 邻居注意力 -->
<g id="node6" class="node">
<title>邻居注意力</title>
<text text-anchor="middle" x="289.7752" y="-187.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">邻居注意力</text>
</g>
<!-- 汇聚&#45;&gt;邻居注意力 -->
<g id="edge5" class="edge">
<title>汇聚-&gt;邻居注意力</title>
<path fill="none" stroke="#586e75" d="M197.1788,-202.8232C208.3904,-201.5127 221.8083,-199.9444 234.9039,-198.4137"></path>
<polygon fill="#586e75" stroke="#586e75" points="240.0961,-197.8068 235.3911,-200.6221 237.613,-198.0971 235.1299,-198.3873 235.1299,-198.3873 235.1299,-198.3873 237.613,-198.0971 234.8686,-196.1526 240.0961,-197.8068 240.0961,-197.8068"></polygon>
</g>
<!-- 跳连 -->
<g id="node7" class="node">
<title>跳连</title>
<text text-anchor="middle" x="289.7752" y="-129.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">跳连</text>
</g>
<!-- 更新&#45;&gt;跳连 -->
<g id="edge6" class="edge">
<title>更新-&gt;跳连</title>
<path fill="none" stroke="#586e75" d="M197.1788,-122.4037C214.0868,-124.5212 236.0124,-127.267 254.2837,-129.5552"></path>
<polygon fill="#586e75" stroke="#586e75" points="259.3331,-130.1876 254.0922,-131.7987 256.8524,-129.8769 254.3718,-129.5662 254.3718,-129.5662 254.3718,-129.5662 256.8524,-129.8769 254.6514,-127.3336 259.3331,-130.1876 259.3331,-130.1876"></polygon>
</g>
<!-- 门机制 -->
<g id="node8" class="node">
<title>门机制</title>
<text text-anchor="middle" x="289.7752" y="-71.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">门机制</text>
</g>
<!-- 更新&#45;&gt;门机制 -->
<g id="edge7" class="edge">
<title>更新-&gt;门机制</title>
<path fill="none" stroke="#586e75" d="M197.1788,-109.2426C212.6988,-103.6709 232.4465,-96.5813 249.715,-90.3818"></path>
<polygon fill="#586e75" stroke="#586e75" points="254.5143,-88.6589 250.5686,-92.4661 252.1613,-89.5036 249.8083,-90.3484 249.8083,-90.3484 249.8083,-90.3484 252.1613,-89.5036 249.0481,-88.2307 254.5143,-88.6589 254.5143,-88.6589"></polygon>
</g>
<!-- 全层拼接 -->
<g id="node9" class="node">
<title>全层拼接</title>
<text text-anchor="middle" x="289.7752" y="-13.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">全层拼接</text>
</g>
<!-- 更新&#45;&gt;全层拼接 -->
<g id="edge8" class="edge">
<title>更新-&gt;全层拼接</title>
<path fill="none" stroke="#586e75" d="M185.2009,-100.7813C198.6327,-85.3499 219.2601,-63.2133 240,-47 243.5875,-44.1954 247.4735,-41.4712 251.4382,-38.8873"></path>
<polygon fill="#586e75" stroke="#586e75" points="255.7609,-36.1415 252.7468,-40.7217 253.6506,-37.482 251.5403,-38.8224 251.5403,-38.8224 251.5403,-38.8224 253.6506,-37.482 250.3339,-36.9232 255.7609,-36.1415 255.7609,-36.1415"></polygon>
</g>
</g>
</svg>
</p><div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section><section data-notes="" lineno="192" class="slide " data-line="192" data-h="5" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>归一化</h5></div></div>
<p>GNN 基本形式采用直接加和汇聚邻居的信息</p>
<br>
<p>问题：对度数敏感，若<span class="mathjax-exps">$d_u \gg d_v$</span>，则<span class="mathjax-exps">$\| \sum_{w \in \Ncal(u)} \hv_w \| \gg \| \sum_{w \in \Ncal(v)} \hv_w \|$</span>，<span class="mathjax-exps">$u$</span>的信息可以“淹没”其它点的信息</p>
<br>
<p>方案：归一化</p>
<p>

$$
\begin{align*}
    \mv_{\Ncal(u)} = \frac{\sum_{v \in \Ncal(u)} \hv_v}{|\Ncal(u)|}, \quad \mv_{\Ncal(u)} = \sum_{v \in \Ncal(u)} \frac{\hv_v}{\sqrt{|\Ncal(u)||\Ncal(v)|}}
\end{align*}
$$
</p>

<p>后者与自指向环结合：图卷积网络 (<strong>g</strong>raph <strong>c</strong>onvolutional <strong>n</strong>etwork, GCN)</p>
<p>

$$
\begin{align*}
    \hv_u^\sup{k} = \sigma \left( \Wv^\sup{k} \sum_{ v \in \Ncal(u) \cup \{u\} } \frac{\hv_v}{\sqrt{|\Ncal(u)||\Ncal(v)|}} \right)
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="230" class="slide " data-line="230" data-h="5" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>集合汇聚</h5></div></div>
<p>归一化 → 具有置换不变性的集合函数</p>
<br>
<p>集合汇聚 (set pooling)</p>
<p>

$$
\begin{align*}
    \mv_{\Ncal(u)} = \mlp_\thetav \left( \sum_{v \in \Ncal(u)} \mlp_\phiv (\hv_v) \right)
\end{align*}
$$
</p>

<p>理论上可以证明任意具有置换不变性的集合函数都可由上式无限逼近</p>
<br>
<p>Janossy 汇聚：通过考虑所有的标号排列获得置换不变性</p>
<p>

$$
\begin{align*}
    \mv_{\Ncal(u)} = \mlp_\thetav \left( \frac{1}{|\Pi|} \sum_{\pi \in \Pi} \rho_\phi (\hv_{v_1}, \hv_{v_2}, \ldots, \hv_{v_{|\Ncal(u)|}})_{\pi_i} \right)
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\Pi$</span>是由置换构成的集合，<span class="mathjax-exps">$\rho_\phi$</span>是任意函数 (不需要具有置换不变性)</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="270" class="slide " data-line="270" data-h="5" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>邻居注意力</h5></div></div>
<p>为邻居赋予不同的权重：<span class="mathjax-exps">$\mv_{\Ncal(u)} = \sum_{v \in \Ncal(u)} \alpha_{u,v} \hv_v$</span></p>
<br>
<p>图注意力网络 (<strong>g</strong>raph <strong>at</strong>tention network, GAT)</p>
<p>

$$
\begin{align*}
    \alpha_{u,v} = \frac{\exp(\av^\top [\Wv \hv_u \oplus \Wv \hv_v])}{\sum_{v' \in \Ncal(u)} \exp(\av^\top [\Wv \hv_u \oplus \Wv \hv_{v'}])}
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\av$</span>和<span class="mathjax-exps">$\Wv$</span>是可训练的参数，<span class="mathjax-exps">$\oplus$</span>表示向量拼接</p>
<br>
<p>变种：</p>
<p>

$$
\begin{align*}
    \alpha_{u,v} = \frac{\exp(\av^\top [\hv_u^\top \Wv \hv_v])}{\sum_{v' \in \Ncal(u)} \exp(\av^\top [\hv_u^\top \Wv \hv_{v'}])}, ~ \alpha_{u,v} = \frac{\exp(\mlp(\hv_u, \hv_v))}{\sum_{v' \in \Ncal(u)} \exp(\mlp(\hv_u, \hv_{v'}))}
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="308" class="slide " data-line="308" data-h="6" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>更新</h5></div></div>
<p>对更新进行魔改主要为了解决 GNN 的过平滑 (over-smoothing) 问题</p>
<br>
<p>过平滑：当 GNN 的层数 (迭代轮数) 过大时，所有点的信息趋于相同</p>
<br>
<p>设<span class="mathjax-exps">$f: \Rbb_+ \mapsto \Rbb_+$</span>为可微的归一化函数，对任意带有自指向环并采用</p>
<p>

$$
\begin{align*}
    \aggregate ( \{ \hv_v, \forall v \in \Ncal(u) \cup \{u\} \} ) = \frac{1}{f (|\Ncal(u) \cup \{u\}|)} \sum_{v \in \Ncal(u) \cup \{u\}} \hv_v
\end{align*}
$$
</p>

<p>进行信息汇聚的 GNN 有<span class="mathjax-exps">$\ev^\top (\partial \hv_v^\sup{k} / \partial \hv_u^\sup{0}) \ev \propto p_K (u | v)$</span></p>
<br>
<p>当<span class="mathjax-exps">$K$</span>过大时，<span class="mathjax-exps">$p_K (u | v)$</span>即为随机游走的平稳分布，这意味着每个点的局部邻居信息已经完全丢失</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="340" class="slide " data-line="340" data-h="6" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>跳连</h5></div></div>
<p>基本想法：类似于残差网络，引入跳连 (skip connection) 凸显点自身的信息，防止被邻居信息“淹没”</p>
<br>
<p>拼接跳连：初见于 GraphSAGE 算法</p>
<p>

$$
\begin{align*}
    \update_{\text{concat}} (\hv_u, \mv_{\Ncal(u)}) = [\update_{\text{base}} (\hv_u, \mv_{\Ncal(u)}) \oplus \hv_u]
\end{align*}
$$
</p>

<p>插值跳连：</p>
<p>

$$
\begin{align*}
    \update_{\text{interpolate}} (\hv_u, \mv_{\Ncal(u)}) = \alphav_1 \odot \update_{\text{base}} (\hv_u, \mv_{\Ncal(u)}) + \alphav_2 \odot \hv_u
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\alphav_1, \alphav_2 \in [0,1]^d$</span>为门向量 (gating vectors)，<span class="mathjax-exps">$\alphav_2 = \ev - \alphav_1$</span>，<span class="mathjax-exps">$\alphav_1$</span>与 GNN 原本的参数联合学习</p>
<ul>
<li><span class="mathjax-exps">$\alphav_1$</span>可以作为一个单层 GNN 的输出</li>
<li><span class="mathjax-exps">$\alphav_1$</span>也可以作为一个 MLP 的输出</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="379" class="slide " data-line="379" data-h="6" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>门机制</h5></div></div>
<p>对于点<span class="mathjax-exps">$u$</span>：</p>
<ul>
<li>每轮汇聚得到的邻居信息<span class="mathjax-exps">$\mv_{\Ncal(u)}^\sup{k}$</span>构成一个序列，可以看作 RNN 的输入<span class="mathjax-exps">$\xv^\sup{k}$</span></li>
<li>每轮更新得到的嵌入表示<span class="mathjax-exps">$\hv_u^\sup{k}$</span>构成一个序列，可以看作 RNN 的隐藏状态</li>
</ul>
<p>

$$
\begin{align*}
    \hv_u^\sup{k} &amp; = \gru (\hv_u^\sup{k-1}, \mv_{\Ncal(u)}^\sup{k}) \\
    \hv_u^\sup{k} &amp; = \lstm (\hv_u^\sup{k-1}, \mv_{\Ncal(u)}^\sup{k})
\end{align*}
$$
</p>

<p>事实上任何 RNN 都可引入到 GNN 中来，不局限于 GRU 和 LSTM</p>
<br>
<p>权值共享</p>
<ul>
<li>在每个点上训练一个 RNN，不同点之间权值共享</li>
<li>通常丹师们还会将 GNN 的汇聚层也进行权值共享</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="410" class="slide " data-line="410" data-h="6" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>全层拼接</h5></div></div>
<p>之前我们都是假设将 GNN 的最后一层当作点的嵌入表示<span class="mathjax-exps">$\zv_u = \hv_u^\sup{k}$</span>，但层数一深最后一层各点的嵌入表示趋于相同 (过平滑)</p>
<br>
<p>拼接所有层的嵌入表示，称为 <strong>j</strong>umping <strong>k</strong>nowledge (JK) connections</p>
<p>

$$
\begin{align*}
    \zv_u = f_{\text{JK}} (\hv_u^\sup{0} \oplus \hv_u^\sup{1} \oplus \cdots \oplus \hv_u^\sup{K})
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$f_{\text{JK}}(\cdot)$</span>是任意可微函数：</p>
<ul>
<li>恒等函数</li>
<li>max-pooling</li>
<li>LSTM</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="438" class="slide " data-line="438" data-h="7" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>异构图</h5></div></div>
<p>关系图卷积网络 (<strong>r</strong>elational <strong>g</strong>raph <strong>c</strong>onvolutional <strong>n</strong>etwork, RGCN)</p>
<p>

$$
\begin{align*}
    \mv_{\Ncal(u)} = \sum_{\tau \in \Rcal} \sum_{v \in \Ncal_\tau (u)} \frac{\Wv_\tau \hv_v}{f_n(\Ncal(u), \Ncal(v))}
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$f_n(\cdot, \cdot)$</span>是归一化函数，之前介绍过的归一化函数都可用过来</p>
<br>
<p>权值共享：引入一组基矩阵<span class="mathjax-exps">$\Bv_1, \ldots, \Bv_b$</span></p>
<p>

$$
\begin{align*}
    \mv_{\Ncal(u)} = \sum_{\tau \in \Rcal} \sum_{v \in \Ncal_\tau (u)} \frac{\sum_{i \in [b]} \alpha_{i, \tau} \Bv_i \hv_v }{f_n(\Ncal(u), \Ncal(v))}
\end{align*}
$$
</p>

<p>扩展</p>
<ul>
<li>不带权值共享</li>
<li>加入注意力机制</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="477" class="slide " data-line="477" data-h="7" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>加权图</h5></div></div>
<p>RGCN 假设边的的特征是离散的，因此汇聚可以采用直接求和的形式</p>
<br>
<p>对于更一般形式的边的特征，可以和邻居的嵌入表示进行拼接</p>
<p>

$$
\begin{align*}
    \mv_{\Ncal(u)} = \aggregate_\base ( \{ \hv_v \oplus \ev_{(u, \tau, v)}, \forall v \in \Ncal(u) \} )
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\ev_{(u, \tau, v)}$</span>是边<span class="mathjax-exps">$(u, \tau, v)$</span>的向量值特征</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="501" class="slide " data-line="501" data-h="8" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>图汇聚</h5></div></div>
<p>对于图层面的任务，还需整图的嵌入表示<span class="mathjax-exps">$\zv_\Gcal$</span></p>
<br>
<p>集合汇聚策略：学习汇聚函数<span class="mathjax-exps">$f_{\mathrm{p}}: \{ \zv_1, \ldots, \zv_{|\Vcal|} \} \mapsto \zv_\Gcal$</span></p>
<p>

$$
\begin{align*}
    \zv_\Gcal = \frac{\sum_{u \in \Vcal} \zv_u}{f_n(|\Vcal|)}
\end{align*}
$$
</p>

<br>
<p>事实上之前介绍的任意对邻居的汇聚函数都可用过来</p>
<p>套用 LSTM 和注意力机制，初始化<span class="mathjax-exps">$\qv_0$</span>、<span class="mathjax-exps">$\ov_0$</span>为全零向量，对<span class="mathjax-exps">$t \in [T]$</span>有</p>
<p>

$$
\begin{align*}
    \qv_t = \lstm(\ov_{t−1}, \qv_{t−1}), ~ \alpha_{v,t} &amp; = \frac{\exp(f_a (\zv_t, \qv_t))}{\sum_{u \in \Vcal} \exp(f_a (\zv_u, \qv_t))}, ~ \ov_t = \sum_{v \in \Vcal} \alpha_{v,t} \zv_v
\end{align*}
$$
</p>

<p>最终输出<span class="mathjax-exps">$\zv_\Gcal = \ov_1 \oplus \ov_2 \oplus \cdots \oplus \ov_T$</span></p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="541" class="slide " data-line="541" data-h="8" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>图汇聚</h5></div></div>
<p>集合汇聚没有考虑图的结构信息</p>
<br>
<p>图粗化 (coarsening) 策略：构建层次化的 GNN，类似于 CNN 中的汇聚</p>
<ul>
<li>假设有聚类函数<span class="mathjax-exps">$\fv_c: \Gcal \times \Rbb^{|\Vcal| \times d} \mapsto \Rbb^{|\Vcal| \times c}$</span>将图中的点分成<span class="mathjax-exps">$c$</span>个簇</li>
<li>记<span class="mathjax-exps">$\Sv = \fv_c(\Gcal, \Zv)$</span>为分配矩阵，<span class="mathjax-exps">$[\Sv]_{u,i}$</span>表示点<span class="mathjax-exps">$u$</span>和第<span class="mathjax-exps">$i$</span>个簇之间的相关性</li>
<li><span class="mathjax-exps">$f_c$</span>简单的可采用谱聚类，复杂的也可再用一个 GNN</li>
</ul>
<br>
<p>以簇为点构造新的粗粒度的图，对应的邻接矩阵和点特征矩阵：</p>
<p>

$$
\begin{align*}
    \Av_\new = \Sv^\top \Av \Sv \in \Rbb^{c \times c}, \quad \Xv_\new = \Sv^\top \Xv \in \Rbb^{c \times d}
\end{align*}
$$
</p>

<ul>
<li>如果新图粒度已然合适，就在新图上再运行一个 GNN 得到各点 (原图中的簇) 的嵌入表示，然后用集合汇聚得到整图的嵌入表示；否则继续聚类</li>
<li>如果想整个模型是端到端的，那么聚类函数<span class="mathjax-exps">$f_c$</span>必须是可微的</li>
<li>如果想改善模型的计算复杂度和训练速度，可采用删点而不是汇聚</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section data-notes="" lineno="575" class="slide " data-line="575" data-h="9" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>一般形式的消息传递</h5></div></div>
<p>之前介绍的汇聚-更新基本模式可以进一步一般化</p>
<br>
<p>引入边和图的嵌入表示</p>
<p>

$$
\begin{align*}
    \hv_{(u,v)}^\sup{k} &amp; = \class{blue}{\update_\edge} (\hv_{(u,v)}^\sup{k-1}, \hv_u^\sup{k-1}, \hv_v^\sup{k-1}, \hv_\Gcal^\sup{k-1}) \\
    \mv_{\Ncal(u)} &amp; = \aggregate_\node (\{ \hv_{(u,v)}^\sup{k}, \forall v \in \Ncal(u) \}) \\
    \hv_u^\sup{k} &amp; = \update_\node (\hv_u^\sup{k-1}, \mv_{\Ncal(u)}, \class{blue}{\hv_\Gcal^\sup{k-1}} ) \\
    \hv_\Gcal^\sup{k} &amp; = \class{blue}{\update_\graph} (\hv_\Gcal^\sup{k-1}, \{ \hv_u^\sup{k}, \forall u \in \Vcal \}, \{ \hv_{(u,v)}^\sup{k}, \forall (u,v) \in \Ecal \})
\end{align*}
$$
</p>

<ul>
<li>每轮的更新顺序是先边、再点，最后整图</li>
<li>点更新引入了整图的嵌入表示，即同时考虑局部和全局信息</li>
<li>整图更新可以采用前面介绍的汇聚、粗化等策略</li>
<li>近期有研究表明一般形式的消息传递更适合学习逻辑表达式</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section data-notes="" lineno="605" class="slide " data-line="605" data-h="10" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>GNN 实现 点分类</h5></div></div>
<p>设编码器给出的点的嵌入表示为<span class="mathjax-exps">$\zv_u$</span>，类别标记<span class="mathjax-exps">$\yv_u \in \{ 0,1 \}^C$</span></p>
<br>
<p>解码器的损失函数通常采用负对数似然</p>
<p>

$$
\begin{align*}
    \Lcal = - \sum_{u \in \Vcal_\train} \log \left( \sum_{c \in [C]} [\yv_u]_c \frac{\exp(\wv_c^\top \zv_u)}{\sum_{i \in [C]} \exp(\wv_i^\top \zv_u)} \right)
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\wv_1, \ldots, \wv_C$</span>是待学习的参数</p>
<br>
<p>两类学习任务</p>
<ul>
<li>转导学习：待预测的点在训练时已知，参与消息传递，不参与损失函数计算</li>
<li>归纳学习：待预测的点及相关的边在训练时未知，既不参与消息传递，也不参与损失函数计算，通常用于有多个连通分支的图，在一个连通分支上训练，在另一个连通分支上预测</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section data-notes="" lineno="636" class="slide " data-line="636" data-h="11" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>图层面的任务</h5></div></div>
<p>设图的嵌入表示为<span class="mathjax-exps">$\zv_\Gcal$</span></p>
<br>
<p>分类，训练数据为<span class="mathjax-exps">$(\Gcal_1, \yv_1), \ldots, (\Gcal_m, \yv_m)$</span>，类别标记<span class="mathjax-exps">$\yv_j \in \{ 0,1 \}^C$</span>，损失采用负对数似然</p>
<p>

$$
\begin{align*}
    \Lcal = - \sum_{j \in [m]} \log \left( \sum_{c \in [C]} [\yv_j]_c \frac{\exp(\wv_c^\top \zv_{\Gcal_j})}{\sum_{i \in [C]} \exp(\wv_i^\top \zv_{\Gcal_j})} \right)
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\wv_1, \ldots, \wv_C$</span>是待学习的参数</p>
<br>
<p>回归，训练数据为<span class="mathjax-exps">$(\Gcal_1, y_1), \ldots, (\Gcal_m, y_m)$</span>，损失采用平方损失函数</p>
<p>

$$
\begin{align*}
    \Lcal = - \sum_{i \in [m]} \| \mlp(\zv_{\Gcal_i}) - y_{\Gcal_i} \|_2^2
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section><section data-notes="" lineno="674" class="slide " data-line="674" data-h="12" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>关系预测</h5></div></div>
<p>编码器给出的点的嵌入表示为<span class="mathjax-exps">$\zv_u$</span></p>
<br>
<p>关系预测的问题形式化：</p>
<p>

$$
\begin{align*}
    \Lcal = \sum_{(u,v) \in \Dcal} l(\dec(\zv_u, \zv_v), [\Sv]_{uv})
\end{align*}
$$
</p>

<p>其中</p>
<ul>
<li><span class="mathjax-exps">$\Dcal$</span>是训练点对集合</li>
<li><span class="mathjax-exps">$l(\cdot, \cdot)$</span>是损失函数</li>
<li><span class="mathjax-exps">$\dec(\cdot, \cdot)$</span>是解码器</li>
<li><span class="mathjax-exps">$[\Sv]_{uv}$</span>描述点<span class="mathjax-exps">$u$</span>、<span class="mathjax-exps">$v$</span>间的关系</li>
</ul>
<p>后三者在选择上可以排列组合</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="705" class="slide " data-line="705" data-h="12" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>基于矩阵分解的方法</h5></div></div>
<p>拉普拉斯特征映射：</p>
<ul>
<li><span class="mathjax-exps">$\dec(\zv_u, \zv_v) = \| \zv_u - \zv_v \|_2^2$</span></li>
<li><span class="mathjax-exps">$\Lcal = \sum_{(u,v) \in \Dcal} \dec (\zv_u, \zv_v) ~ [\Sv]_{uv}$</span></li>
</ul>
<p>即相似的点要有相似的嵌入表示，若<span class="mathjax-exps">$\Sv$</span>为拉普拉斯矩阵，<span class="mathjax-exps">$\zv_u \in \Rbb^d$</span>，则最优解就是<span class="mathjax-exps">$\Sv$</span>的最小<span class="mathjax-exps">$d$</span>个特征向量，事实上就是在做谱聚类</p>
<br>
<p>内积法：</p>
<ul>
<li><span class="mathjax-exps">$\dec(\zv_u, \zv_v) = \zv_u^\top \zv_v$</span></li>
<li><span class="mathjax-exps">$\Lcal = \sum_{(u,v) \in \Dcal} \| \dec (\zv_u, \zv_v) - [\Sv]_{uv} \|_2^2$</span></li>
</ul>
<p>代表性方法有 Graph Factorization (GF)、GraRep、HOPE，区别仅在于采用的<span class="mathjax-exps">$\Sv$</span>不同，GF 直接用<span class="mathjax-exps">$\Sv = \Av$</span>，GraRep 用<span class="mathjax-exps">$\Av$</span>的幂次，HOPE 可用之前介绍的任意两点间的局部重合度量</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="727" class="slide " data-line="727" data-h="12" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>基于随机游走的方法</h5></div></div>
<p>基于矩阵分解的方法均采用固定的<span class="mathjax-exps">$\Sv$</span>，多为邻接矩阵<span class="mathjax-exps">$\Av$</span>的多项式函数</p>
<p>采用随机、非对称的<span class="mathjax-exps">$\Sv$</span>：</p>
<p>

$$
\begin{align*}
    \dec(\zv_u, \zv_v) &amp; = \frac{\exp((\Wv_{\cen} \zv_u)^\top (\Wv_{\con} \zv_v))}{\sum_{k \in \Vcal} \exp((\Wv_{\cen} \zv_u)^\top (\Wv_{\con} \zv_k))} \approx P_T (v|u) \\
    \Lcal &amp; = - \sum_{(u,v) \in \Dcal} \log ( \dec(\zv_u, \zv_v) )
\end{align*}
$$
</p>

<ul>
<li><span class="mathjax-exps">$P_T (v|u)$</span>为从点<span class="mathjax-exps">$u$</span>开始进行<span class="mathjax-exps">$T$</span>步随机游走访问到<span class="mathjax-exps">$v$</span>的概率</li>
<li><span class="mathjax-exps">$\Dcal$</span>是从<span class="mathjax-exps">$u$</span>开始随机游走序列构成的集合</li>
</ul>
<p>损失函数涉及 Softmax 操作，计算复杂度<span class="mathjax-exps">$O(|\Dcal||\Vcal|)$</span></p>
<ul>
<li>DeepWalk 采用结构化 Softmax 将计算复杂度降低到<span class="mathjax-exps">$O(|\Dcal|\log|\Vcal|)$</span></li>
<li>node2vec 添加了负采样<span class="mathjax-exps">$\Lcal = - \sum_{(u,v) \in \Dcal} \log ( \sigma (\zv_u^\top \zv_v) ) - \gamma \Ebb_{w \sim P(\Vcal)} [\log (-\sigma (\zv_u^\top \zv_w) )]$</span></li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="756" class="slide " data-line="756" data-h="12" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>关系预测</h5></div></div>
<p>问题形式化：</p>
<p>

$$
\begin{align*}
    \Lcal = \sum_{(u,v) \in \Dcal} l(\dec(\zv_u, \zv_v), [\Sv]_{uv})
\end{align*}
$$
</p>

<p>方法总结：</p>
<div class="threelines">
<table>
<thead>
<tr>
<th style="text-align:center">方法</th>
<th style="text-align:center">解码器</th>
<th style="text-align:center">相似性度量</th>
<th style="text-align:center">损失函数</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Lap. eig.</td>
<td style="text-align:center"><span class="mathjax-exps">$\| \zv_u - \zv_v \|^2$</span></td>
<td style="text-align:center">随意</td>
<td style="text-align:center"><span class="mathjax-exps">$\dec(\zv_u, \zv_v) \cdot [\Sv]_{uv}$</span></td>
</tr>
<tr>
<td style="text-align:center">Graph Fact.</td>
<td style="text-align:center"><span class="mathjax-exps">$\zv_u^\top \zv_v$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$[\Av]_{uv}$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$\| \dec (\zv_u, \zv_v) - [\Sv]_{uv} \|_2^2$</span></td>
</tr>
<tr>
<td style="text-align:center">GraRep</td>
<td style="text-align:center"><span class="mathjax-exps">$\zv_u^\top \zv_v$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$[\Av]_{uv}, \ldots, [\Av^k]_{uv}$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$\| \dec (\zv_u, \zv_v) - [\Sv]_{uv} \|_2^2$</span></td>
</tr>
<tr>
<td style="text-align:center">HOPE</td>
<td style="text-align:center"><span class="mathjax-exps">$\zv_u^\top \zv_v$</span></td>
<td style="text-align:center">随意</td>
<td style="text-align:center"><span class="mathjax-exps">$\| \dec (\zv_u, \zv_v) - [\Sv]_{uv} \|_2^2$</span></td>
</tr>
<tr>
<td style="text-align:center">DeepWalk</td>
<td style="text-align:center"><span class="mathjax-exps">$\exp(\zv_u^\top \zv_v) / \sum_{k \in \Vcal} \exp(\zv_u^\top \zv_k)$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$P(v \mid u)$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$- [\Sv]_{uv} \log (\dec(\zv_u, \zv_v))$</span></td>
</tr>
<tr>
<td style="text-align:center">node2vec</td>
<td style="text-align:center"><span class="mathjax-exps">$\exp(\zv_u^\top \zv_v) / \sum_{k \in \Vcal} \exp(\zv_u^\top \zv_k)$</span></td>
<td style="text-align:center">有偏<span class="mathjax-exps">$P(v \mid u)$</span></td>
<td style="text-align:center"><span class="mathjax-exps">$- [\Sv]_{uv} \log (\dec(\zv_u, \zv_v))$</span></td>
</tr>
</tbody>
</table>
</div>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="789" class="slide " data-line="789" data-h="13" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>多重关系预测</h5></div></div>
<p>常见任务：知识图谱补全</p>
<br>
<p>此时解码器为<span class="mathjax-exps">$\dec: \Rbb^d \times \Rcal \times \Rbb^d \mapsto \Rbb_+$</span>，<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v)$</span>可看作边<span class="mathjax-exps">$(u, \tau, v)$</span>存在于图中的似然</p>
<br>
<p>多重关系预测的问题形式化：</p>
<p>

$$
\begin{align*}
    \Lcal = \sum_{(u,\tau,v) \in \Ecal} l(\dec(\zv_u, \tau, \zv_v), [\Av]_{u,\tau,v})
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\Av \in \Rbb^{|\Vcal| \times |\Rcal| \times |\Vcal|}$</span>是邻接张量</p>
<br>
<p>对于多重关系预测</p>
<ul>
<li>相似性度量通常就是邻接张量，因为高阶的邻接张量没有物理意义</li>
<li>损失函数和解码器依然可以排列组合</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="824" class="slide " data-line="824" data-h="13" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>多重关系预测</h5></div></div>
<p>非多重关系预测中使用的损失函数<span class="mathjax-exps">$\| \dec (\zv_u, \zv_v) - [\Sv]_{uv} \|_2^2$</span>这里不太适合</p>
<ul>
<li>非多重关系预测中，<span class="mathjax-exps">$\Sv$</span>可以为<span class="mathjax-exps">$\Av$</span>的幂次，多值更适合看作回归问题</li>
<li>多重关系预测中，<span class="mathjax-exps">$\Sv$</span>就是邻接张量，二值更适合看作分类问题</li>
</ul>
<p>带负采样的交叉熵：</p>
<p>

$$
\begin{align*}
    \Lcal = - \sum_{(u,\tau,v) \in \Ecal} \log (\dec(\zv_u, \tau, \zv_v)) - \gamma \Ebb_{w \sim P_u(\Vcal)} [\log (\sigma (-\dec(\zv_u, \tau, \zv_w))]
\end{align*}
$$
</p>

<ul>
<li>前者是正确预测“存在边”的对数似然</li>
<li>后者是正确预测“不存在边”的对数似然，<span class="mathjax-exps">$P_u(\Vcal)$</span>是跟点<span class="mathjax-exps">$u$</span>相关的概率分布</li>
</ul>
<p>Hinge 损失：</p>
<p>

$$
\begin{align*}
    \Lcal = \sum_{(u,\tau,v) \in \Ecal} \sum_{w \in P_u(\Vcal)} \max \{0, - \dec(\zv_u, \tau, \zv_v) + \dec(\zv_u, \tau, \zv_w) + \Delta \}
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="862" class="slide " data-line="862" data-h="13" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>多重关系预测</h5></div></div>
<p>解码器品种繁多，可以和前面两种损失任意搭配</p>
<br>
<p>RESCAL：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = \zv_u^\top \Rv_\tau \zv_v$</span>，每种关系对应一个<span class="mathjax-exps">$\Rv_\tau \in \Rbb^{d \times d}$</span></p>
<br>
<p>平移解码</p>
<ul>
<li>TransE：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = - \| \zv_u + \rv_\tau - \zv_v \|$</span></li>
<li>TransX：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = - \| g_{1,\tau} (\zv_u) + \rv_\tau - g_{2,\tau}(\zv_v) \|$</span></li>
<li>TransH：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = - \| (\zv_u - \wv_\tau^\top \zv_u \wv_\tau ) + \rv_\tau - (\zv_v - \wv_\tau^\top \zv_v \wv_\tau ) \|$</span></li>
</ul>
<br>
<p>多重线性点积 DistMult：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = \sum_{i \in [d]} [\zv_u]_i [\rv_\tau]_i [\zv_v]_i$</span>，有对称性</p>
<br>
<p>复数解码</p>
<ul>
<li>ComplEx：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = \Re (\sum_{i \in [d]} [\zv_u]_i [\rv_\tau]_i \overline{[\zv_v]_i})$</span>，其中<span class="mathjax-exps">$\zv_u, \tau, \zv_v \in \Cbb^d$</span></li>
<li>RotatE：<span class="mathjax-exps">$\dec(\zv_u, \tau, \zv_v) = - \| \zv_u \odot \rv_\tau - \zv_v \|$</span>，其中<span class="mathjax-exps">$[\rv_\tau]_i = \exp(j ~ \theta_{\tau, i})$</span></li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="893" class="slide " data-line="893" data-h="13" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>多重关系预测</h5></div></div>
<p>可以通过对逻辑关系的表示考察解码器的能力</p>
<ul>
<li>对称性：<span class="mathjax-exps">$(u, \tau, v) \in \Ecal \leftrightarrow (v, \tau, u) \in \Ecal$</span></li>
<li>反对称性：<span class="mathjax-exps">$(u, \tau, v) \in \Ecal \leftrightarrow (v, \tau, u) \not \in \Ecal$</span></li>
</ul>
<br>
<p>DistMult 解码器仅具有对称性，TransE 仅具有反对称性：</p>
<p>

$$
\begin{align*}
    - \| \zv_u + \rv_\tau - \zv_v \| = - \| \zv_v + \rv_\tau - \zv_u \| \Rightarrow \rv_\tau^\top (\zv_u  - \zv_v) = 0 \Rightarrow \rv_\tau = \zerov
\end{align*}
$$
</p>

<ul>
<li>逆性：<span class="mathjax-exps">$(u, \tau_1, v) \in \Ecal \leftrightarrow (v, \tau_2, u) \in \Ecal$</span></li>
<li>复合性：<span class="mathjax-exps">$(u, \tau_1, w) \in \Ecal \wedge (w, \tau_2, v) \in \Ecal \rightarrow (v, \tau_3, u) \in \Ecal$</span></li>
</ul>
<br>
<p>TransE 具有复合性：</p>
<p>

$$
\begin{align*}
    - \| \zv_u + \rv_{\tau_1} + \rv_{\tau_2} - \zv_v \| = - \| \underbrace{\zv_u + \rv_{\tau_1} - \zv_w}_{=\zerov} + \underbrace{\zv_w + \rv_{\tau_2} - \zv_v}_{=\zerov} \|
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section data-notes="" lineno="935" class="slide " data-line="935" data-h="14" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>预训练 GNN</h5></div></div>
<p>以最小化邻居重构损失预训练的 GNN 和随机初始化的 GNN 性能相仿</p>
<br>
<p>Deep Graph Infomax (DGI)</p>
<p>

$$
\begin{align*}
    \Lcal = - \sum_{u \in \Vcal_\train} ( \Ebb_\Gcal \log(\overbrace{D(\zv_u, \zv_\Gcal)}^{\nearrow}) + \gamma \Ebb_{\widetilde{\Gcal}} \log (1 - \overbrace{D(\widetilde{\zv}_u, \zv_\Gcal)}^{\searrow}) )
\end{align*}
$$
</p>

<ul>
<li><span class="mathjax-exps">$\widetilde{\Gcal}$</span>：原图<span class="mathjax-exps">$\Gcal$</span>的随机扰动版</li>
<li><span class="mathjax-exps">$\zv_u$</span>：点<span class="mathjax-exps">$u$</span>的嵌入表示</li>
<li><span class="mathjax-exps">$\widetilde{\zv}_u$</span>：点<span class="mathjax-exps">$u$</span>在扰动图<span class="mathjax-exps">$\widetilde{\Gcal}$</span>上的嵌入表示</li>
<li><span class="mathjax-exps">$D(\cdot, \cdot)$</span>：判别当前的嵌入表示来自原图还是扰动图，通常是个神经网络</li>
</ul>
<br>
<p>基本思想：GNN 生成的点嵌入表示在原图和扰动图上应该显著不同</p>
<br>
<p>DGI 也可用于监督学习设定下的辅助损失</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section data-notes="" lineno="970" class="slide " data-line="970" data-h="15" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>效率问题</h5></div></div>
<p>各个点独自做消息传播会产生大量重复计算，可采用矩阵形式计算</p>
<p>

$$
\begin{align*}
    \Hv^\sup{k} = \sigma ( \Wv_\self^\sup{k} ~ \Hv^\sup{k-1} + \Wv_\neigh^\sup{k} \Hv^\sup{k-1} \Av )
\end{align*}
$$
</p>

<ul>
<li>整图操作非常耗内存</li>
<li>反向传播训练时也是用 GD，而不是 SGD</li>
</ul>
<br>
<p>小批量：随机采样一些点可能得不到一个连通子图，无法做消息传播</p>
<br>
<p>方案：</p>
<ul>
<li>先确定一小部分点，递归地加入这些点的邻居，直到得到连通图</li>
<li>设置每个点的邻居个数上界，避免产生太大的子图</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section data-notes="" lineno="1002" class="slide " data-line="1002" data-h="16" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>正则化</h5></div></div>
<p>适用于 GNN 的传统正则化</p>
<ul>
<li><span class="mathjax-exps">$\ell_2$</span>惩罚</li>
<li>随机丢弃</li>
<li>层归一化</li>
</ul>
<br>
<p>各层权值共享</p>
<ul>
<li>所有<span class="mathjax-exps">$\aggregate (\cdot)$</span>和<span class="mathjax-exps">$\update (\cdot)$</span>均共享权值</li>
<li>适用于超过 6 层的 GNN</li>
</ul>
<br>
<p>边随机丢弃：于 GAT 中首次提出</p>
<ul>
<li>训练时随机删除一些边</li>
<li>适用于知识图谱</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">图神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section>
      </div>
    </div>
    
      </div>
      
      
    
    
      <script>
        Reveal.initialize({"margin":0,"transition":"none","enableSpeakerNotes":true,"dependencies":[{"src":"../common/js/notes/notes.js","async":true}]})
      </script>
      
    
    
    
    
    
    
  
    </body></html>